Поворачивать объект каждые 5 секунд
на окне есть объект. Мне нужно чтобы после запуска окна через 5 секунд этот объект провернулся на 360 градусов, подождал опять 5 секунд, повернулся и так постоянно. Вот что смог написать:
<Rectangle HorizontalAlignment="Center" Height="27" Margin="35,14,835,553" StrokeThickness="10" VerticalAlignment="Center" Width="30" RenderTransformOrigin="0.529,0.481">
<Rectangle.Fill>
<ImageBrush ImageSource="bla.png"/>
</Rectangle.Fill>
<Rectangle.RenderTransform>
<RotateTransform x:Name="rotate"/>
</Rectangle.RenderTransform>
<Rectangle.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="rotate"
Storyboard.TargetProperty="Angle"
From="0" To="360" Duration="0:0:1">
<DoubleAnimation.EasingFunction>
<ElasticEase EasingMode="EaseOut" Oscillations="0"></ElasticEase>
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Rectangle.Triggers>
</Rectangle>
Здесь объект просто при запуске окна проворачивается 1 раз. Мне нужно чтобы он проворачивался каждые 5 секунд, а при запуске поворачивался не сразу, а через 5 секунд.
Ответы (1 шт):
Для того, чтобы сделать задержку у DoubleAnimation либо Storyboard, необходимо использовать свойство BeginTime. Для того, чтобы сделать повторение анимации, необходимо использовать свойство Repeat. В вашем случае код такой
<Storyboard Duration="0:0:6" RepeatBehavior="Forever">
<DoubleAnimation Storyboard.TargetName="rotate" Storyboard.TargetProperty="Angle"
From="0" To="360" BeginTime="0:0:5" Duration="0:0:1">
<DoubleAnimation.EasingFunction>
<ElasticEase EasingMode="EaseOut" Oscillations="0"></ElasticEase>
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
здесь
RepeatBehavior="Forever"
используется для того, чтобы анимация происходила бесконечно. Если вам нужно повторять определенное число раз, тогда задайте
RepeatBehavior="2x"
для этого кода анимация будет повторяться 2 раза. Если вам нужно повторять определенное время, тогда задайте
RepeatBehavior="0:0:10"
где анимация будет повторяться 10 секунд