枢轴应用程序中的动画控件(WP7)

时间:2011-07-23 07:36:11

标签: c# windows-phone-7 pivot storyboard windows-phone

我在Xaml中创建了一个支点。枢轴有4个项目。

在每个支点上都有一个通过以下代码创建的故事板动画:

    {  
        var myStoryBoard = new Storyboard();  
        myStoryBoard.RepeatBehavior = RepeatBehavior.Forever;
        var animation = new ObjectAnimationUsingKeyFrames(); 

        Storyboard.SetTarget(animation, myAnim1);  
        Storyboard.SetTargetProperty(animation, new PropertyPath("Source"));  

        myStoryBoard.Children.Add(animation);  

        // try to catch my images autmatically 

        for (int i = 1; i <= 12; i++)  
        {  
           var keyframe = new DiscreteObjectKeyFrame  
           {  
              KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(750 * i)),
              Value = String.Format("/Images/img_{0:D2}.jpg", i)  
           };  

            animation.KeyFrames.Add(keyframe); 
        }  
        Resources.Add("myAnimation", storyboard);         } 

如果只选择了透视项目,而所有其他故事板都没有播放,我怎样才能将故事板的开头设置为开始?

我尝试用Pivot_SelectionChanged();设置它但没有成功。

1 个答案:

答案 0 :(得分:7)

我认为您必须在页面的加载方法中创建所有故事板,然后显示或隐藏故事板。

    public MainPage()
    {
        // Create storyboard1
        // create storyboard2 ...
    }

然后使用Pivot_SelectionChanged方法显示或隐藏故事板

    private void Pivot_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        switch (((Pivot)sender).SelectedIndex)
        {
            case 0:
                storyboard1.Begin();
                storyboard2.Stop();
                break;
            case 1:
                storyboard2.Begin();
                storyboard1.Stop();
                break;
        }
    }