XAML动画绑定属性

时间:2010-08-17 14:55:15

标签: wpf xaml animation 2d

我将以下Rectangle绑定到不断变化的定位属性“RectTop”

<Rectangle Canvas.Top="{Binding RectTop}" Height="100" Width="100" Fill="Red" />

我是否可以设置动画/触发器,以便在该值发生变化时将矩形平滑地设置为RectTop动画? RectTop不断变化。 RectTop的类实现了INotifyPropertyChanged,所以我的更新工作正常。我已成功使用缓慢增加RectTop的中间线程,然后调用UI线程来通知它的值更改。这种方法非常黑客。必须有更好的方法。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

简单的技巧。更新Rectangle的Margin属性,而不是更新Canvas.Top。

而不是:

  <Canvas Width="300" Height="300" Background="Black">  
    <Rectangle Canvas.Top="10" Fill="Blue" Height="100" Width="100"/>
  </Canvas>

试试这个:

<Canvas Width="300" Height="300" Background="Black">  
    <Rectangle Margin="0,10,0,0" Fill="Blue" Height="100" Width="100"/>
  </Canvas>

PS:你应该使用Thickness Animation

HTH