色/ブラシの数値または動的リソースを含むウィンドウがあります。
たとえば、これ; 例 1は「DynamicResource ColFancyMed」を更新しません
<Rectangle x:Name="dbBarPeekOutRect1" Margin="3,10,10,10" >
<Rectangle.Fill>
<SolidColorBrush Color="{DynamicResource ColFancyMed}" />
</Rectangle.Fill>
</Rectangle>
アプリが起動すると、リソース ファイルが読み込まれ、正しい色が表示されます。
ただし、これらの色にはテーマがあるため、これらのリソース キーを含む多くのリソース ディクショナリがあります。したがって、リソース辞書を次のように変更します
Application.Current.Resources.MergedDictionaries.RemoveAt(0)
Application.Current.Resources.MergedDictionaries.Insert(0, dict)
これは他の場所では機能しますが、上記では機能しません。面白いのは、次を使用する場合です。私が見ることができる唯一の違いは、1 つは Color で、もう 1 つは SolidColorBrush です。
例 2は「DynamicResource ColFancyMed」を更新します
<Rectangle x:Name="dbBarPeekOutRect1" Margin="3,10,10,10" Fill="{DynamicResource ColFancyMed}"/>
すると色が変わります。
では、なぜ例 1 は機能せず、例 2 は機能するのでしょうか?
同様に、それが機能しない別の場所は、たとえば次のとおりです。
<Storyboard x:Key="dbBarPeekOutHighlight">
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)" Storyboard.TargetName="dbBarPeekOutRect1">
<EasingColorKeyFrame KeyTime="0" Value="{DynamicResource ColFancyMed}"/>
<EasingColorKeyFrame KeyTime="0:0:0.2" Value="#FFF2F6F9"/>
</ColorAnimationUsingKeyFrames>
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)" Storyboard.TargetName="dbBarPeekOutRect2">
<EasingColorKeyFrame KeyTime="0" Value="{DynamicResource ColFancyMed}"/>
<EasingColorKeyFrame KeyTime="0:0:0.2" Value="#FFF2F6F9"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>
どんな助けでも大歓迎です。