Вы пытались приостановить анимацию?
Хороший пример найден здесь , и когда вы хотите приостановить его из-за кода, используйте DataTrigger
вместо EventTrigger
.
А может быть, вас также интересует «Тройная скорость раскадровки».
Редактировать
Ваш вопрос "Я хочу, чтобы он запускался / останавливался с помощью кнопки, а не когда страница загружена. Как я могу решить эту проблему?" нельзя ответить, потому что когда страница (граница?) не загружена, анимация не может быть запущена. Предлагаю скрыть страницу / границу и сделать ее видимой только после приостановки анимации.
Я немного повозился и попытался решить ее с помощью Visibility
<!-- This Border is animated. -->
<Border Height="300" Margin="68,434,1506,335" >
<Border.Style>
<Style TargetType="{x:Type Border}">
<!-- Here is your animation -->
<Style.Triggers>
<EventTrigger RoutedEvent="Border.Loaded">
<BeginStoryboard Name="RandomStoryboard">
<Storyboard >
<RectAnimation Storyboard.TargetProperty="Background.(ImageBrush.Viewport)"
To="0,0,1,1" RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
<!-- Stop the animation at the Start -->
<PauseStoryboard BeginStoryboardName="RandomStoryboard" />
</EventTrigger>
<!-- Control the animation according to the Togglebutton State -->
<DataTrigger Binding="{Binding Path=IsChecked, ElementName=SpinControl}" Value="True">
<DataTrigger.EnterActions>
<ResumeStoryboard BeginStoryboardName="RandomStoryboard" />
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<PauseStoryboard BeginStoryboardName="RandomStoryboard" />
</DataTrigger.ExitActions>
<!-- Hide the Border while the animation is running -->
<Setter Property="Border.Visibility" Value="Hidden"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
<!-- This Button Controls the Animated Border -->
<ToggleButton Name="SpinControl">
<ToggleButton.Style>
<Style TargetType="{x:Type ToggleButton}">
<Setter Property="Content" Value="Start"/>
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Content" Value="Stop"/>
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
Примечание. Секция Style
в ToggleButton
является необязательной, она изменяет только Content
со старта на стоп (и наоборот).
Примечание 2: Не забудьте вставить VisualBrush
в рамку, иначе анимация не будет распознана.