WPF DatePickerTextBox-当IsEnabled == false时更改字体颜色/不透明度

时间:2011-02-16 17:00:21

标签: wpf datepicker isenabled

我正在努力摆脱标题中指定的问题。有人在这做过吗?

禁用DatePicker控件时,DatePickerTextBox上的字体为灰色且难以阅读。我正在改变这一点。

问候,弗雷德里克。

2 个答案:

答案 0 :(得分:2)

您需要查看SystemColors class...在给定控件的资源中,您可以通过指定Brush来覆盖其中一种颜色。例如:

<Brush x:Key="{x:Static SystemColors.GrayTextBrushKey}" Color="Black"/>

答案 1 :(得分:1)

DatePicker的启用性在其名为PART_DisabledVisual的控件模板中使用半透明叠加层进行控制。您唯一真正的选择是使用Expression Blend或ShowMeTheTemplate或MSDN重新设置整个DatePicker ControlTemplate的样式并更改以下行:

<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。如果被禁用,该怎么办,如果有的话,由你决定。