日期:2014-05-18  浏览次数:20942 次

WPF的Resource可以相互作用吗
在resource中设置了一个coloranimation和一个brush,想用animation改变刷子的颜色,但是运行会报错,请问有什么解决方案
HTML code

<UserControl.Resources>
        <SolidColorBrush x:Name="myBrush" Color="Gainsboro"></SolidColorBrush>
        <Storyboard x:Name="BrushChange">
            <ColorAnimation RepeatBehavior="Forever" From="LightBlue" To="LightGray" Duration="0:0:01" Storyboard.TargetName="myBrush" Storyboard.TargetProperty="Color">
                
            </ColorAnimation>
            <PointAnimation RepeatBehavior="Forever" From="20,20" To="180,180" Duration="0:0:20" Storyboard.TargetName="myPath" Storyboard.TargetProperty="Center">
                
            </PointAnimation>
        </Storyboard>
    </UserControl.Resources>



------解决方案--------------------
探讨

引用:

System.Windows.Media.Brush 对象继承自 System.Windows.Freezable ,一经初始化完毕就会使自身变为只读以节约内存。所以你不能改变资源中画刷的颜色,只能改变对象引用的画刷。

谢谢,那有没有办法做一个可以用coloranimation改变的公共画刷呢,如果我多个控件都是一样的需求,那么每个控件就要分别对应一个画刷和……