我有一个窗口,上面有颜色/画笔的数字或动态资源。
例如这个;示例 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)
这适用于其他地方,但不适用于上述情况。有趣的是,如果我使用以下内容。我能看到的唯一区别是一个是颜色,另一个是 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>
任何帮助,将不胜感激。