wpf FrameworkElement.width Animation - PullRequest
       16

wpf FrameworkElement.width Animation

0 голосов
/ 12 сентября 2018

Я положил свой прямоугольник на холст на wpf.Мы дали doubleAnimation, используя «FrameworkElement.With» для этого прямоугольника.Если вы попытаетесь изменить ширину прямоугольника после завершения анимации, она не изменится.Вы можете догадаться, почему?

1 Ответ

0 голосов
/ 12 сентября 2018

Анимация изменится и сохранит значение с более высоким приоритетом, поэтому ваше обычное установленное значение не будет работать. Вы можете прочитать документы Microsoft для получения более подробной информации о Значение свойства зависимости Приоритет .

У вас есть два разных способа изменить значение анимированного свойства.

первый. Не назначайте анимацию To свойство

Если вы создадите анимацию следующим образом, вам нужно удалить свойство To.

<DoubleAnimation Storyboard.TargetName="element" Storyboard.TargetProperty="Width"
                 From="0" To="100" Duration="0:0:1" />

Удалить To.

<DoubleAnimation Storyboard.TargetName="element" Storyboard.TargetProperty="Width"
                 From="0" Duration="0:0:1" />

Когда вы пытаетесь начать анимацию, звоните так:

storyboard.Begin();
element.Width = 100;

Таким образом, ваша раскадровка начнется, а затем оживит ваш Width до вашего последнего установленного значения.

второй. Удалите анимацию из вашего Width свойства

Каждый раз, когда ваша раскадровка или анимация завершаются, начинайте другую анимацию null, чтобы удалить более высокое значение приоритета свойства Width.

element.BeginAnimation(WidthProperty, null);
...