WPF DatePickerTextBox - изменить цвет/непрозрачность шрифта, когда IsEnabled == false

Я с трудом пытаюсь избавиться от проблемы, указанной в заголовке. Кто-нибудь здесь делал это?

Когда элемент управления DatePicker отключен, шрифт на DatePickerTextBox становится серым и плохо читаемым. Я меняюсь, чтобы изменить это.

С уважением, Фредрик.


person fsl    schedule 16.02.2011    source источник


Ответы (2)


Активность DatePicker контролируется с помощью полупрозрачного наложения в шаблоне управления под названием PART_DisabledVisual. Единственный реальный вариант — изменить стиль всего DatePicker ControlTemplate с помощью Expression Blend, ShowMeTheTemplate или . MSDN и измените эти строки:

<Rectangle Grid.Row="0" Grid.Column="0" RadiusX="1" RadiusY="1" Fill="#A5FFFFFF"/>
<Rectangle Grid.Row="0" Grid.Column="1" RadiusX="1" RadiusY="1" Fill="#A5FFFFFF" Height="18" Width="19" Margin="3,0,3,0" />

к этому:

<Rectangle Grid.Column="0" Fill="Transparent" RadiusY="1" Grid.Row="0" RadiusX="1"/>
<Rectangle Grid.Column="1" Fill="Transparent" Height="18" Margin="3,0,3,0" RadiusY="1" Grid.Row="0" RadiusX="1" Width="19"/>

что предотвратит выделение серым наложением TextBox. Что делать вместо этого при отключении, во всяком случае, зависит от вас.

person Rick Sladkey    schedule 16.02.2011

Вам следует изучить класс SystemColors... В ресурсах для данного элемента управления вы можете переопределить один из этих цветов, указав кисть. Например:

<Brush x:Key="{x:Static SystemColors.GrayTextBrushKey}" Color="Black"/>
person Dan J    schedule 16.02.2011