How can I define and use a variable in XAML to define a color?
Try defining your color as a SolidColorBrush:
<SolidColorBrush x:Key="ReadOnlyTextBrush" Color="#555555" />
...
<TextBox Foreground="{StaticResource ReadOnlyTextColor}" />
Sometimes you may need to define colors rather than brushes : (one case you would want this is to be able to define Gradients with color parameters) In that case you could just define them like this:
<Color x:Key="ButtonColor1">Blue</Color>
<Color x:Key="ButtonColor1">#AABBCC</Color>
<Color x:Key="ButtonColor1" A="0" R="124" G="111" B="44"/>