ColorAnimation ani = new ColorAnimation(Colors.White, TimeSpan.FromSeconds(1))
{ RepeatBehavior = RepeatBehavior.Forever, AutoReverse = true };
SolidColorBrush brush1 = new SolidColorBrush(Colors.Black);
brush1.BeginAnimation(SolidColorBrush.ColorProperty, ani);
SolidColorBrush brush2 = brush1.Clone();
// brush2 is not an animated Brush
if (!brush2.HasAnimatedProperties)
MessageBox.Show("I don't want this!");
正如MSDN Library所说(Brush.Clone方法):
创建此Brush的可修改克隆,制作此对象值的深层副本。复制依赖项属性时,此方法复制资源引用和数据绑定(但它们可能不再解析),但不复制动画或其当前值。
那么,克隆动画画笔的最佳方法是什么? 感谢。
答案 0 :(得分:2)
一种可靠的方法可能是扩展Brush
类并在派生类中实现ICloneable
。
然后,您的自定义Clone
方法可以处理克隆您需要克隆的任何内容。
答案 1 :(得分:2)
您需要在克隆上重新创建动画。没有其他办法。