RepeatBehavior Структура
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Описывает, как временная шкала повторяет свою простую длительность.
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
struct RepeatBehavior
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
public struct RepeatBehavior
Public Structure RepeatBehavior
<object property="iterationsx"/>
- or -
<object property="[days.]hours:minutes:seconds[.fractionalSeconds]"/>
- or -
<object property="Forever"/>
- Наследование
-
RepeatBehavior
- Атрибуты
Требования к Windows
Семейство устройств |
Windows 10 (появилось в 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v1.0)
|
Примеры
В этом примере показано несколько различных способов установки 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 , а RepeatBehavior задается в методе Start_Animation
, а не в 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:
- Диапазон времени: указывает активную длительность временной шкалы, возможно, повторяя анимацию, если Timeline.Duration короче. Например, временная шкала с простым значением Timeline.Duration 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, то ни Count , ни Duration не имеют значения; поведение повторения таково, что целевая анимация будет повторяться непрерывно без ограничения.
Примечания по синтаксису XAML
RepeatBehavior нельзя объявить в качестве объекта, доступного для общего доступа, в ResourceDictionary.
Проекция и члены RepeatBehavior
Если вы используете язык Microsoft .NET (C# или Microsoft Visual Basic), repeatBehavior имеет доступные члены, не относящиеся к данным, а его члены данных Count, Duration и Type предоставляются как свойства чтения и записи, а не поля.
Если вы используете расширения компонентов Visual C++ (C++/CX), repeatBehavior имеет доступные члены, не относящиеся к данным, а его члены данных Count, Duration и Type предоставляются как свойства только для чтения, а не поля.
При программировании на C++ с помощью библиотеки шаблонов среда выполнения Windows (WRL) в качестве членов RepeatBehavior существуют только поля элементов данных Count, Duration и Type, и вы не сможете использовать служебные методы или свойства, перечисленные в таблице элементов. Код WRL может обращаться к аналогичным служебным методам, которые существуют в классе RepeatBehaviorHelper .
Поля
Count |
Количество повторов временной шкалы . |
Duration |
Период времени, в течение которого должна повторяться временная шкала . |
Type |
Режим или тип поведения повтора, представляемый этим экземпляром, в виде значения перечисления. |