2010-09-20 142 views
11

在我簡單的WPF應用程序中,我使用常規的CheckBox控件。它看起來像我可以控制背景和前景。 Foreground屬性控制複選框旁邊的文本,但不控制複選標記。默認情況下背景是白色的,因爲我有一個黑暗的窗體背景,所以我的前景非常接近白色。複選框中的複選標記

當我在開發Windows 7機器上運行應用程序時,複選標記爲黑色。在Win XP電腦上,複選標記爲綠色。但是,在另一臺Win XP機器上,複選標記是不可見的,因爲它是白色的白色。

我的問題是「我如何控制複選框的複選標記顏色?」。

回答

16

此問題發生在使用'Windows經典'主題或使用遠程桌面的Win XP上。 複選框的子彈複選標記爲整個CheckBox使用前景顏色的顏色。

<CheckBox Foreground="White" Content="My Text" /> 

我能夠通過更改下面的代碼來解決這個問題:

<CheckBox> 
    <Label Foreground="White">My Text</Label> 
</CheckBox> 
+0

有完全相同的問題。謝謝! – smvlad 2011-02-25 16:32:25

3

您需要覆蓋CheckBox的ControlTemplate。

Here's an example MSDN上。

+0

感謝。這並不像我希望的那麼簡單,但我正在研究它。 – Vadim 2010-09-20 16:01:38

+0

如果你有Blend,你總是可以使用Edit Template命令(對不起,我沒有Blend在這裏,所以我不能告訴你確切的命令)來獲得默認模板。或者,你可以使用Snoop之類的東西。 – 2010-09-20 16:16:31

0

另外,我認爲你可以定義一個樣式來定義一個觸發器,它根據你的需要改變顏色。由於這很有趣,我會嘗試一下並稍微發佈一個示例。

編輯:nevermind,CheckBox使用BulletChrome,它在內部執行一些渲染,並且不公開任何可用於鉤入的有趣屬性。

+0

非常感謝您的關注。 – Vadim 2010-09-20 16:46:55