我使用表达式混合为名为“rect”的矩形
创建了这个小动画<Storyboard x:Name="flipanim">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Projection).(PlaneProjection.RotationY)" Storyboard.TargetName="rect">
<EasingDoubleKeyFrame KeyTime="0" Value="90"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
现在我想为运行时加载的每个列表框项目(使用itemtemplate生成)显示此动画,如何设置listitems的animate属性。如何为列表项指定TargetName
属性?
如果那不可能,那么我想知道如何在C#中转换上面的代码。
答案 0 :(得分:1)
愿这会帮到你
DoubleAnimation rotation = new DoubleAnimation();
rotation.From = 0;
rotation.To = 90;
rotation.Duration = new Duration(TimeSpan.FromSeconds(0.5));
Storyboard.SetTarget(rotation, rect);
Storyboard.SetTargetProperty(rotation, new PropertyPath("(UIElement.RenderTransform).(RotateTransform.Angle)"));
Storyboard flipanim= new Storyboard();
flipanim.Children.Add(rotation);
flipanim.Begin();
答案 1 :(得分:0)
您可以在ItemTemplate中定义Storyboard,因此每个项目都有自己的,并使用EventTrigger作为Loaded事件,使用Action来启动Storyboard。将Storyboard定义为DataTemplate中第一个元素的资源,以便您可以访问命名元素(如here)。