I'm using NoXaml libraries with the VisualStudio2013 theme. I'm able to set the values of the colours in VisualStudio2013Palette.Palette and this mostly seems to correctly update everything at runtime...
Except that I'm using RadDocking, and each pane has a header. The background is AlternativeColor, and then when you click a header it switches to HeaderColor. If I change AlternativeColor at runtime, the unselected pane headers all update as expected. However the selected pane header is painting in the original colour of HeaderColor, and doesn't change. The only way to change that seems to be to set it during startup (e.g. in my MainWindow constructor).
I looked at the theme implementations. In PaneHeaderControlTemplate there's:
<
p
><
ObjectAnimationUsingKeyFrames
Storyboard.TargetName
=
"Content"
Storyboard.TargetProperty
=
"Background"
></
p
><
p
> <
DiscreteObjectKeyFrame
KeyTime
=
"0:0:0"
Value
=
"{telerik:VisualStudio2013Resource ResourceKey=HeaderBrush}"
/><
br
></
ObjectAnimationUsingKeyFrames
></
p
>
If I change HeaderBrush to AccentMainBrush and change that at runtime, behaviour is the same. So it must be something about referring to that brush from the animation storyboard that copies the original brush?
Is there a way around this? It would be cool to have the theme consistently change its colours without needing a restart.