Как анимировать свойство zIndex в Silverlight? - PullRequest
2 голосов
/ 27 марта 2012

Двойная анимация не работает, потому что тип является целым числом. Есть ли класс Integeranimation? Или делать это по-другому. Я не заинтересован в статической анимации, но на основе событий (желательно программные) анимации.

public static void Swap(UIElement ui1, UIElement ui2, double seconds)
        {
            var z2 = (int)ui1.GetValue(Canvas.ZIndexProperty);
            var z3 = (int)ui2.GetValue(Canvas.ZIndexProperty);
            DoubleAnimation da1 = new DoubleAnimation(); 
            DoubleAnimation da2 = new DoubleAnimation();
            Duration d = new Duration(TimeSpan.FromSeconds(seconds));
            da1.Duration = d;
            da2.Duration = d;
            Storyboard sb = new Storyboard();
            Storyboard.SetTarget(da1, ui1);
            Storyboard.SetTarget(da2, ui2);
            Storyboard.SetTargetProperty(da1, new PropertyPath("(Canvas.ZIndex)"));
            Storyboard.SetTargetProperty(da2, new PropertyPath("(Canvas.ZIndex)"));
            sb.Duration = d;
            sb.Children.Add(da1);
            sb.Children.Add(da2);
            da1.To = (double)z3;
            da2.To = (double)z2;
            sb.Begin();



        }

        private void Btn1_Click_1(object sender, RoutedEventArgs e)
        {
            var z2 = (int)Image2.GetValue(Canvas.ZIndexProperty);
            var z3 = (int)Image3.GetValue(Canvas.ZIndexProperty);

            Swap(Image2, Image3, 3); 

        }

Ответы [ 2 ]

3 голосов
/ 27 марта 2012

Вы можете анимировать дискретные значения, используя ObjectAnimationUsingKeyFrames с DiscreteObjectKeyFrame.

<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Canvas.ZIndex)" Storyboard.TargetName="MyObject">
   <DiscreteObjectKeyFrame KeyTime="0" Value="250"/>
</ObjectAnimationUsingKeyFrames>

или вы можете сделать это в коде.

1 голос
/ 27 марта 2012

Вы не можете анимировать свойство int.Подумайте, что бы это на самом деле значило.

Что может приблизиться (визуально), так это оживить Непрозрачность.И, возможно, изменить Zindex на мероприятии, завершающем анимацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...