Управление анимацией в сводном приложении (WP7) - PullRequest
1 голос
/ 23 июля 2011

Я создал свод в 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 Ответ

7 голосов
/ 23 июля 2011

Я думаю, вам нужно создать все раскадровки в методе загрузки вашей страницы, а затем показать или скрыть раскадровку.

    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;
        }
    }
...