2010-03-21 3 views
7

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

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

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

ответ

12

Самый простой способ - определить всю анимацию в одной раскадровке с подходящими 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 секунды (и анимация вращения зубчатой ​​передачи не закончится).

Смежные вопросы