Галочка в галочке - PullRequest
       3

Галочка в галочке

11 голосов
/ 20 сентября 2010

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

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

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

Ответы [ 3 ]

17 голосов
/ 20 сентября 2010

Эта проблема возникает в Win XP, которая использует тему «Windows Classic» или использует удаленный рабочий стол. Флажок "Пуля" флажка принимает цвет переднего плана для всего CheckBox.

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

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

<CheckBox>
   <Label Foreground="White">My Text</Label>
</CheckBox>
3 голосов
/ 20 сентября 2010

Вам необходимо переопределить ControlTemplate CheckBox.

Вот пример в MSDN.

0 голосов
/ 20 сентября 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...