Флажок в флажке

В моем простом приложении WPF я использую обычный элемент управления CheckBox. Похоже, я могу контролировать фон и передний план. Свойство Foreground управляет текстом рядом с флажком, но не галочкой. По умолчанию фоновый цвет белый, мой передний план очень близок к белому, потому что у меня темный фон формы окон.

Когда я запускаю приложение на моей машине разработки Windows 7, галочка имеет черный цвет. На компьютере с Win XP галочка зеленая. Однако на другой машине Win XP галочка невидима, потому что она белая на белом фоне.

Мой вопрос: "Как я могу контролировать цвет флажка моего флажка?".

Ответ 1

Эта проблема возникает в Win XP, которая использует тему "Windows Classic" или использует Remote Desktop. Отметка флажка флажка имеет цвет цвета переднего плана для всего CheckBox.

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

Я смог исправить эту проблему, изменив код ниже:

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

Ответ 2

Вам нужно переопределить ControlTemplate из CheckBox.

Вот пример на MSDN.

Ответ 3

В качестве альтернативы, я думаю, вы могли бы определить стиль, определяющий триггер, который изменяет цвет по вашему желанию. Поскольку это интересно, я попробую и отправлю образец немного.

Edit: nevermind, CheckBox использует BulletChrome, который выполняет некоторую визуализацию внутри себя и не раскрывает никаких интересных свойств, которые можно было бы использовать для подключения.