我有一个清单,比如:
class MyBox
{
public int X{set;get;} //X binding ok ,this just example
//...
}
List<MyBox> boxes{set;get;}
字符串
我用列表创建Button,如:
<Style x:Key="boxTemplate" TargetType="ItemsControl">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style TargetType="ContentPresenter">
<Setter Property="Canvas.Top" Value="{Binding Y}" />
<Setter Property="Canvas.Left" Value="{Binding X}" />
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<Button />
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</Setter.Value>
</Setter>
</Style>
型
有用途:
<itemscontrol itemsSource="{Binding boxes}" Style="{StaticReSource boxTemplate}" />
型
问题是:当MyBox.X发生变化时,如何创建移动动画?
谢谢你,谢谢
编辑:
我尝试使用renderTransform.TranslateTransform,这个工作,但移动距离是错误的!
1条答案
按热度按时间vq8itlhq1#
我自己治好了。我创建了一个MoveX值,用于计算动画从和到的移动:
字符串
然后,在移动动作之后(其中MoveX被改变,将动画从=旧MoveX移动到=新Movex),我设置
MyBox.X = 0
,并且,我不知道为什么,移动动画工作得很好。