C#等效于动画的xaml代码

时间:2013-11-30 07:38:49

标签: c# xaml windows-phone-7 animation windows-phone-8

我使用表达式混合为名为“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#中转换上面的代码。

2 个答案:

答案 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)。