DynamicResource的ColorAnimation解决方法

时间:2011-12-19 08:34:45

标签: wpf xaml

我有一个应用程序,它使用主题来自定义按钮和其他ui控件的外观。样式使用一些常见颜色,因此它们在xaml中定义并使用StaticResource引用:

<ColorAnimation Storyboard.TargetName="LayoutRoot"
                Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
                To="{StaticResource AccentColor}"
                Duration="00:00:00"/>

现在,我想让AccentColor可配置。问题是,我不能只使用DynamicResource,因为ColorAnimation必须是freezable才能在故事板中使用。

有解决方法吗?

1 个答案:

答案 0 :(得分:1)

似乎唯一的解决方法是不使用ColorAnimation,而是使用2个元素,其中一个元素的背景设置为{DynamicResource AccentColor}并交换其可见性。

当然这种解决方法特定于这种情况,例如,只有ColorAnimation持续时间为0才有意义,否则它不会产生相同的视觉效果。