MS Surface анимация SVI по прямой - PullRequest
2 голосов
/ 08 октября 2009

Итак, я пытаюсь переместить элемент ScatterViewItem из одной точки в другую. Я пытался использовать PointAnimation. Однако после завершения анимации я не могу переместить элемент из точки «Кому». Я могу вращать предмет и масштабировать его, но по какой-то причине не могу его переместить.

Это простое движение от 1 до следующего по прямой. Должен ли я использовать PointAnimation или есть лучший способ? Спасибо, я делаю это в C #

Код анимации моей точки:

        oPointAnimation = new PointAnimation();
        oPointAnimation.From = new Point(439, 113);
        oPointAnimation.To = new Point(139, 160);

        oPointAnimation.Duration = TimeSpan.FromSeconds(4);
        oPointAnimation.Completed += new EventHandler(oPointAnimation_Completed);
        theCard.BeginAnimation(ScatterViewItem.CenterProperty, oPointAnimation);

Ответы [ 2 ]

1 голос
/ 02 декабря 2009

Хотя у вас уже есть принятый ответ, я бы хотел добавить здесь точку.

Даже если для параметра FillBehavior установлено значение «Стоп», в некоторых случаях он просто не работает. Я полагаю, что это связано с HandoffBehavior , установленным в SnapshotAndReplace. В этих случаях я программно запустил новую анимацию (используя BeginAnimation ) для этого свойства зависимости со null в качестве второго аргумента.

// Remove all animations for the Opacity property on the myElement element 
myElement.BeginAnimation(UIElement.OpacityProperty, null)

Это эффективно очищает все анимации для этого свойства зависимости, и вы можете свободно присваивать ему новые значения.

1 голос
/ 08 октября 2009

Полагаю, вам нужно использовать FillBehaviour для POintAnimation to FillBehavior = "Stop"

...