在我簡單的WPF應用程序中,我使用常規的CheckBox控件。它看起來像我可以控制背景和前景。 Foreground屬性控制複選框旁邊的文本,但不控制複選標記。默認情況下背景是白色的,因爲我有一個黑暗的窗體背景,所以我的前景非常接近白色。複選框中的複選標記
當我在開發Windows 7機器上運行應用程序時,複選標記爲黑色。在Win XP電腦上,複選標記爲綠色。但是,在另一臺Win XP機器上,複選標記是不可見的,因爲它是白色的白色。
我的問題是「我如何控制複選框的複選標記顏色?」。
在我簡單的WPF應用程序中,我使用常規的CheckBox控件。它看起來像我可以控制背景和前景。 Foreground屬性控制複選框旁邊的文本,但不控制複選標記。默認情況下背景是白色的,因爲我有一個黑暗的窗體背景,所以我的前景非常接近白色。複選框中的複選標記
當我在開發Windows 7機器上運行應用程序時,複選標記爲黑色。在Win XP電腦上,複選標記爲綠色。但是,在另一臺Win XP機器上,複選標記是不可見的,因爲它是白色的白色。
我的問題是「我如何控制複選框的複選標記顏色?」。
此問題發生在使用'Windows經典'主題或使用遠程桌面的Win XP上。 複選框的子彈複選標記爲整個CheckBox使用前景顏色的顏色。
<CheckBox Foreground="White" Content="My Text" />
我能夠通過更改下面的代碼來解決這個問題:
<CheckBox>
<Label Foreground="White">My Text</Label>
</CheckBox>
您需要覆蓋CheckBox的ControlTemplate。
Here's an example MSDN上。
感謝。這並不像我希望的那麼簡單,但我正在研究它。 – Vadim 2010-09-20 16:01:38
如果你有Blend,你總是可以使用Edit Template命令(對不起,我沒有Blend在這裏,所以我不能告訴你確切的命令)來獲得默認模板。或者,你可以使用Snoop之類的東西。 – 2010-09-20 16:16:31
另外,我認爲你可以定義一個樣式來定義一個觸發器,它根據你的需要改變顏色。由於這很有趣,我會嘗試一下並稍微發佈一個示例。
編輯:nevermind,CheckBox使用BulletChrome,它在內部執行一些渲染,並且不公開任何可用於鉤入的有趣屬性。
非常感謝您的關注。 – Vadim 2010-09-20 16:46:55
有完全相同的問題。謝謝! – smvlad 2011-02-25 16:32:25