WPF的Resource可以相互作用吗

lovelan1748 2012-08-16 04:38:32
在resource中设置了一个coloranimation和一个brush,想用animation改变刷子的颜色,但是运行会报错,请问有什么解决方案

<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>
...全文
153 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovelan1748 2012-08-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
把这些控件对应属性绑定到同一个属性上,然后用动画改一个属性就可以了
[/Quote]
用color作为资源也不行,你说的绑定到同一个属性具体该怎么做呢
iyomumx 2012-08-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 1 楼 的回复:

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

谢谢,那有没有办法做一个可以用coloranimation改变的公共画刷呢,如果我多个控件都是一样的需求,那么每个控件就要分别对应一个画刷和……
[/Quote]
把这些控件对应属性绑定到同一个属性上,然后用动画改一个属性就可以了
lovelan1748 2012-08-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

System.Windows.Media.Brush 对象继承自 System.Windows.Freezable ,一经初始化完毕就会使自身变为只读以节约内存。所以你不能改变资源中画刷的颜色,只能改变对象引用的画刷。
[/Quote]
谢谢,那有没有办法做一个可以用coloranimation改变的公共画刷呢,如果我多个控件都是一样的需求,那么每个控件就要分别对应一个画刷和动画了,并且他们是一样的...
iyomumx 2012-08-16
  • 打赏
  • 举报
回复
System.Windows.Media.Brush 对象继承自 System.Windows.Freezable ,一经初始化完毕就会使自身变为只读以节约内存。所以你不能改变资源中画刷的颜色,只能改变对象引用的画刷。

110,525

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧