How can I define and use a variable in XAML to define a color?

wpf, xaml

Solution

Try defining your color as a SolidColorBrush:

<SolidColorBrush x:Key="ReadOnlyTextBrush" Color="#555555" />

...

<TextBox Foreground="{StaticResource ReadOnlyTextColor}" />

Problem

I have a number of elements in my XAML which define Foreground="#555" to be the color of faded text in a readonly textbox. ``` <TextBlock Text="{Binding SingularModelClassFileTitle}" Margin="0 10 0 0"/> <TextBox Text="{Binding SingularModelClassFileName}" HorizontalAlignment="Left" IsReadOnly="True" Foreground="#555" Width="500"/> <TextBox VerticalScrollBarVisibility="Visible" AcceptsReturn="True" Width="500" Height="100" IsReadOnly="True" Foreground="#555" Text="{Binding SingularModelClassContent}" HorizontalAlignment="Left" Margin="0 0 0 20"/> ``` How can I put this value in a XAML variable and reference in each attribute it so that I only have to change it in one place? I'm thinking you can do something like this: ``` <sys:String x:Key="ReadOnlyTextColor">#555</sys:String> ... <TextBox Foreground="{StaticResource ReadOnlyTextColor}"/> ``` And what would be the property `xmlns:sys=...` reference for this?

Original source