Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

BackgroundColor of a disabled TextBox

Tags:

.net

wpf

I have a TextBox that is defined through a ControlTemplate. Because of the ControlTemplate, the TextBox is no more automatically grayed out when the IsEnabled-property is set to false.

To provide this functionality, I use the following trigger within the ControlTemplate:

<Trigger Property="IsEnabled" Value="False">                            
    <Setter Property="Foreground" Value="{x:Static SystemColors.GrayTextBrush}" />
</Trigger>

This works fine. However I have to set also the BackgroundColor but I don't have found a corresponding entry in SystemColors. Which entry is the right entry for the background of disabled controls (TextBoxes)? Is there another source than SystemColors?

I don't want to use a fixed value. e.g. setting Background="#f4f4f4", because I fear that in some environments, the disabled-background has another value and then my control looks not as it should or even is unreadable (if for example the value of the GrayTextBrush is near #f4).

like image 550
HCL Avatar asked Oct 18 '10 08:10

HCL


1 Answers

The following StackOverflow question may help:

Visual guide to System.Windows.SystemColors

Edit:

I did some additional sleuthing and looked at the standard XAML styles that Microsoft provides (see Where can I download Microsoft's standard WPF themes from?). You can see exactly which SystemColors values are used for various controls.

For example, here is a snippet of the control template for ComboBox:

<Trigger Property="IsEnabled" Value="false">
    ...
    <Setter
        TargetName="Bd"
        Property="Background"
        Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"/>
    ...
</Trigger>

Microsoft uses SystemColors.ControlBrushKey as the background color of a disabled ComboBox.

like image 174
sourcenouveau Avatar answered Oct 30 '22 10:10

sourcenouveau