Question

I'm having a hard time trying to style myself out of the problem specified in the title. Has anyone here done that?

When the DatePicker control is disabled the font on the DatePickerTextBox is gray and hard to read. I'm changing to change that.

Regards, Fredrik.

Was it helpful?

Solution

The enabled-ness of a DatePicker is controlled using a semi-opaque overlay in its control template called PART_DisabledVisual. Your only real option is to re-style the whole DatePicker ControlTemplate using Expression Blend or ShowMeTheTemplate or MSDN and change these lines:

<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" />

to this:

<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"/>

which will stop the overlay from graying out the TextBox. What to do instead when disabled, if anything, is then up to you.

OTHER TIPS

You'll want to look into the SystemColors class... In the resources for a given control, you can override one of those colors by specifying a Brush. For example:

<Brush x:Key="{x:Static SystemColors.GrayTextBrushKey}" Color="Black"/>
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top