我将以下Rectangle绑定到不断变化的定位属性“RectTop”
<Rectangle Canvas.Top="{Binding RectTop}" Height="100" Width="100" Fill="Red" />
我是否可以设置动画/触发器,以便在该值发生变化时将矩形平滑地设置为RectTop动画? RectTop不断变化。 RectTop的类实现了INotifyPropertyChanged,所以我的更新工作正常。我已成功使用缓慢增加RectTop的中间线程,然后调用UI线程来通知它的值更改。这种方法非常黑客。必须有更好的方法。
有什么想法吗?
答案 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