XAML C # WPF Лучший эффективный способ сделать упорядоченную последовательность анимаций - PullRequest
8 голосов
/ 21 марта 2010

Я хотел бы сделать последовательность анимаций на метке, например, сначала сделать анимацию непрозрачности со значениями от 0 до 1 и наоборот и только в конце анимации непрозрачности, а не перед анимацией переднего плана. Я хотел бы сделать это в коде XAML, а затем начать и закончить де анимацию из кода C #. Какой самый лучший и эффективный способ сделать это?

Все ответы приветствуются!

Заранее спасибо.

1 Ответ

15 голосов
/ 21 марта 2010

Самый простой способ - определить всю анимацию в одной раскадровке с подходящими свойствами BeginTime и Duration. Таким образом, вся анимация может быть запущена и остановлена ​​как единое целое, но вы можете иметь разные последовательности.

Например:

<Storyboard Duration="0:00:06">
    <DoubleAnimation Duration="0:0:4" Storyboard.TargetName="gear1RotateTransform" Storyboard.TargetProperty="Angle" From="-600" To="0"/>
    <DoubleAnimation Duration="0:0:4" Storyboard.TargetName="gear2RotateTransform" Storyboard.TargetProperty="Angle" From="600" To="0"/>
    <DoubleAnimation Duration="0:0:4" Storyboard.TargetName="gear3RotateTransform" Storyboard.TargetProperty="Angle" From="-600" To="0"/>
    <DoubleAnimation BeginTime="0:0:1" Duration="0:00:02" Storyboard.TargetName="firstLetter" Storyboard.TargetProperty="Opacity" From="0.0" To="1.0"/>
    <DoubleAnimation BeginTime="0:0:2" Duration="0:00:02" Storyboard.TargetName="secondLetter" Storyboard.TargetProperty="Opacity" From="0.0" To="1.0"/>
    <DoubleAnimation BeginTime="0:0:3" Duration="0:00:02" Storyboard.TargetName="thirdLetter" Storyboard.TargetProperty="Opacity" From="0.0" To="1.0"/>
    <DoubleAnimation BeginTime="0:0:4" Duration="0:00:02" Storyboard.TargetName="siteLink" Storyboard.TargetProperty="Opacity" From="0.0" To="1.0"/>
    <DoubleAnimation BeginTime="0:0:4" Duration="0:00:02" Storyboard.TargetName="siteLinkTop" Storyboard.TargetProperty="Opacity" From="0.0" To="1.0"/>
</Storyboard>

Эта раскадровка изменяет значения преобразования 3 поворота в течение первых 4 секунд, но непрозрачность элемента firstLetter не начинает изменяться, пока не пройдет одна секунда, и работает только в течение 2 секунд. Элементы siteLink и siteLinkTop не изменяют свою непрозрачность до тех пор, пока через 4 секунды (и анимация вращения шестеренки закончилась).

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