RepeatBehavior Estrutura
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Descreve como uma Linha do Tempo repete sua duração simples.
/// [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"/>
- Herança
-
RepeatBehavior
- Atributos
Requisitos do Windows
Família de dispositivos |
Windows 10 (introduzida na 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduzida na v1.0)
|
Exemplos
Este exemplo mostra várias maneiras diferentes de definir o RepeatBehavior de uma animação e como essas configurações podem afetar sua animação.
<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();
}
Este exemplo mostra como você pode definir o RepeatBehavior no código. As animações são as mesmas do exemplo anterior, mas têm o atributo x:Name definido e RepeatBehavior é definido no método em Start_Animation
vez de em 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();
}
Comentários
Há três tipos de comportamentos RepeatBehavior:
- Intervalo de tempo: especifica a duração ativa de uma Linha do Tempo, possivelmente repetindo a animação se Timeline.Duration for menor. Por exemplo, uma Linha do Tempo com um valor timeline.duration simples de 1 segundo e um valor RepeatBehavior.Duration de 2,5 segundos será executado por 2,5 iterações e 2,5 segundos.
- Contagem de iteração: especifica o número de vezes que a duração simples de uma Linha do Tempo é reproduzida. A contagem de iteração padrão é 1,0 e isso significa que a Linha do Tempo está ativa por exatamente uma de suas durações simples. Uma contagem de 0,5 especifica que o linha do tempo está ativo pela metade de sua duração simples, enquanto uma contagem de 2 especifica que o linha do tempo repete sua duração simples duas vezes. Para obter mais informações, consulte Contagem.
- Para sempre: a Linha do Tempo se repete indefinidamente.
Um RepeatBehavior deve conter apenas valores diferentes de zero para uma de suas duas propriedades de dados possíveis Count ou Duration. Se RepeatBehaviorType for Count, o membro Count de um RepeatBehavior será o valor relevante. Se RepeatBehaviorType for Duration, o membro Duration de um RepeatBehavior será o valor relevante. Se RepeatBehaviorType for Forever, nem Count nem Duration serão relevantes; o comportamento de repetição é tal que a animação de destino será repetida continuamente sem um limite.
Observações sobre a sintaxe XAML
Você não pode declarar um RepeatBehavior como um objeto compartilhável em um ResourceDictionary.
Projeção e membros de RepeatBehavior
Se você estiver usando uma linguagem Microsoft .NET (C# ou Microsoft Visual Basic), RepeatBehavior terá membros que não são de dados disponíveis e seus membros de dados Count, Duration e Type serão expostos como propriedades de leitura/gravação, não campos.
Se você estiver usando extensões de componente do Visual C++ (C++/CX), RepeatBehavior terá membros que não são de dados disponíveis e seus membros de dados Count, Duration e Type serão expostos como propriedades somente leitura, não campos.
Se você estiver programando com C++ usando a WRL (Biblioteca de Modelos de Windows Runtime), somente os campos de membro de dados Count, Duration e Type existirão como membros de RepeatBehavior e você não poderá usar os métodos ou propriedades do utilitário listados na tabela de membros. O código WRL pode acessar métodos utilitários semelhantes que existem na classe RepeatBehaviorHelper .
Campos
Count |
O número de vezes que uma Linha do Tempo deve se repetir. |
Duration |
O período de tempo para o qual uma Linha do Tempo deve se repetir. |
Type |
O modo ou tipo de comportamento de repetição que essa instância representa, como um valor da enumeração . |