RepeatBehavior Структура
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Описывает, как временная шкала повторяет ее простую длительность.
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
struct RepeatBehavior
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
public struct RepeatBehavior
Public Structure RepeatBehavior
<object property="iterationsx"/>
- or -
<object property="[days.]hours:minutes:seconds[.fractionalSeconds]"/>
- or -
<object property="Forever"/>
- Наследование
-
RepeatBehavior
- Атрибуты
Примеры
В этом примере показано несколько различных способов настройки анимации RepeatBehavior и способов влияния этих параметров на анимацию.
<StackPanel Margin="20">
<StackPanel.Resources>
<Storyboard x:Name="myStoryboard">
<!-- Create an animation that repeats indefinitely. -->
<DoubleAnimation
Storyboard.TargetName="ForeverRepeatingTransform"
Storyboard.TargetProperty="ScaleX"
From="1" To="5" Duration="0:0:2" RepeatBehavior="Forever" />
<!-- Create an animation that repeats for four seconds. Because
the animation is 2 seconds each, you get two repeats. -->
<DoubleAnimation
Storyboard.TargetName="FourSecondsRepeatingTransform"
Storyboard.TargetProperty="ScaleX"
From="1" To="5" Duration="0:0:2" RepeatBehavior="0:0:4"
EnableDependentAnimation="True"/>
<!-- Create an animation that repeats twice. -->
<DoubleAnimation
Storyboard.TargetName="TwiceRepeatingTransform"
Storyboard.TargetProperty="ScaleX"
From="1" To="5" Duration="0:0:2" RepeatBehavior="2x"
EnableDependentAnimation="True"/>
<!-- Create an animation that repeats 0.5 times. The resulting animation
plays for one second, half of its Duration. It animates from 50 to 150. -->
<DoubleAnimation
Storyboard.TargetName="HalfRepeatingTransform"
Storyboard.TargetProperty="ScaleX"
From="1" To="5" Duration="0:0:2" RepeatBehavior="0.5x"
EnableDependentAnimation="True"/>
<!-- Create an animation that repeats for one second. The resulting animation
plays for one second, half of its Duration. It animates from 50 to 150. -->
<DoubleAnimation
Storyboard.TargetName="OneSecondRepeatingTransform"
Storyboard.TargetProperty="ScaleX"
From="1" To="5" Duration="0:0:2" RepeatBehavior="0:0:1"
EnableDependentAnimation="True"/>
</Storyboard>
</StackPanel.Resources>
<!-- Create several rectangles to animate. -->
<Rectangle Fill="Red" Width="50" Height="20" >
<Rectangle.RenderTransform>
<ScaleTransform x:Name="ForeverRepeatingTransform" />
</Rectangle.RenderTransform>
</Rectangle>
<Rectangle Fill="Blue" Width="50" Height="20" >
<Rectangle.RenderTransform>
<ScaleTransform x:Name="FourSecondsRepeatingTransform" />
</Rectangle.RenderTransform>
</Rectangle>
<Rectangle Fill="Yellow" Width="50" Height="20" >
<Rectangle.RenderTransform>
<ScaleTransform x:Name="TwiceRepeatingTransform" />
</Rectangle.RenderTransform>
</Rectangle>
<Rectangle Fill="Green" Width="50" Height="20" >
<Rectangle.RenderTransform>
<ScaleTransform x:Name="HalfRepeatingTransform" />
</Rectangle.RenderTransform>
</Rectangle>
<Rectangle Fill="Orange" Width="50" Height="20" >
<Rectangle.RenderTransform>
<ScaleTransform x:Name="OneSecondRepeatingTransform" />
</Rectangle.RenderTransform>
</Rectangle>
<!-- Create buttons to restart and stop the animations. -->
<Button Margin="10" Content="Restart Animation" Click="Start_Animation" />
</StackPanel>
private void Start_Animation(object sender, RoutedEventArgs e)
{
myStoryboard.Begin();
}
В этом примере показано, как задать RepeatBehavior в коде. Анимации совпадают с предыдущим примером, но имеют набор атрибутов x:Name , а в методе задано Start_Animation значение RepeatBehavior, а не в XAML.
<Storyboard x:Name="myStoryboard">
<!-- Create an animation that repeats indefinitely. -->
<DoubleAnimation x:Name="ForeverRepeatingAnimation"
Storyboard.TargetName="ForeverRepeatingTransform"
Storyboard.TargetProperty="ScaleX"
From="1" To="5" Duration="0:0:2" />
<!-- Create an animation that repeats for four seconds. Because
the animation is 2 seconds each, you get two repeats. -->
<DoubleAnimation x:Name="FourSecondsRepeatingAnimation"
Storyboard.TargetName="FourSecondsRepeatingTransform"
Storyboard.TargetProperty="ScaleX"
From="1" To="5" Duration="0:0:2"
EnableDependentAnimation="True"/>
<!-- Create an animation that repeats twice. -->
<DoubleAnimation x:Name="TwiceRepeatingAnimation"
Storyboard.TargetName="TwiceRepeatingTransform"
Storyboard.TargetProperty="ScaleX"
From="1" To="5" Duration="0:0:2"
EnableDependentAnimation="True"/>
</Storyboard>
private void Start_Animation(object sender, RoutedEventArgs e)
{
// Set RepeatBehavior of Forever.
var repeatBehavior = new RepeatBehavior();
repeatBehavior.Type = RepeatBehaviorType.Forever;
ForeverRepeatingAnimation.RepeatBehavior = repeatBehavior;
// Set RepeatBehavior with Duration of 4 seconds.
FourSecondsRepeatingAnimation.RepeatBehavior = new RepeatBehavior(new TimeSpan(0, 0, 4));
// Set RepeatBehavior with Count of 2.
TwiceRepeatingAnimation.RepeatBehavior = new RepeatBehavior(2);
myStoryboard.Begin();
}
Комментарии
Существует три типа поведения RepeatBehavior:
- Интервал времени: указывает активную длительность временной шкалы, возможно, повторяя анимацию, если временная шкала.Длительность короче. Например, временная шкала с простым значением Временной шкалы.Длительность 1 секунды и значением RepeatBehavior.Duration 2,5 секунд будет выполняться в течение 2,5 итерации и 2,5 секунды.
- Число итераций: указывает количество раз, когда выполняется простое время воспроизведения временной шкалы . Число итераций по умолчанию равно 1.0, и это означает, что временная шкала активна ровно для одной из простых длительностей. Число 0,5 указывает, что временная шкала активна в течение половины простой длительности, а число 2 указывает, что временная шкала повторяет свою простую длительность дважды. Дополнительные сведения см. в разделе Count.
- Навсегда: временная шкала повторяется бесконечно.
Значение RepeatBehavior должно содержать только ненулевых значений для одного из двух возможных свойств данных Count или Duration. Если параметр RepeatBehaviorType имеет значение Count, то элемент Count объекта RepeatBehavior является соответствующим значением. Если параметр RepeatBehaviorType имеет значение Duration, то элемент Duration объекта RepeatBehavior является соответствующим значением. Если параметр RepeatBehaviorType имеет значение Forever, то ни число , ни длительность не относятся; Поведение повтора заключается в том, что целевая анимация будет повторяться непрерывно без ограничения.
Заметки о синтаксисе XAML
Невозможно объявить RepeatBehavior как общий объект в ResourceDictionary.
Проекция и члены RepeatBehavior
Если вы используете язык Microsoft .NET (C#), то RepeatBehavior имеет доступные элементы без данных, а его члены данных Count, Duration and Type предоставляются как свойства чтения и записи, а не поля.
Если вы используете C++, то RepeatBehavior имеет доступные элементы, а его члены данных Count, Duration и Type предоставляются как свойства только для чтения, а не поля.
Если вы используете C++ с помощью библиотеки шаблонов среда выполнения Windows (WRL), то только поля элементов данных Count, Duration и Type существуют как члены RepeatBehavior, и вы не можете использовать служебные методы или свойства, перечисленные в таблице членов. Код WRL может получить доступ к аналогичным методам служебной программы, существующим в классе RepeatBehaviorHelper .
Поля
| Имя | Описание |
|---|---|
| Count |
Количество повторов временной шкалы . |
| Duration |
Интервал времени, для которого должна повторяться временная шкала . |
| Type |
Режим или тип повторяющегося поведения, который представляет этот экземпляр, в качестве значения перечисления. |