Procedura: Animare lo spessore di un bordo usando fotogrammi chiave
In questo esempio viene illustrato come animare la proprietà BorderThickness di un Border.
Esempio
Nell'esempio seguente viene utilizzata la classe ThicknessAnimationUsingKeyFrames per animare la proprietà BorderThickness di un Border. Questa animazione usa tre fotogrammi chiave nel modo seguente:
Nei primi mezzo secondo, usa un'istanza della classe LinearThicknessKeyFrame per aumentare gradualmente lo spessore del bordo. L'esempio usa LinearThicknessKeyFrame per creare un aumento lineare uniforme tra i valori.
Alla fine del mezzo secondo successivo, utilizza un'istanza della classe DiscreteThicknessKeyFrame per aumentare bruscamente lo spessore del bordo. Fotogrammi chiave discreti come quelli derivati da DiscreteThicknessKeyFrame creano salti improvvisi tra i valori, ovvero il movimento dell'animazione è scattoso.
Durante gli ultimi due secondi, utilizza un'istanza della classe SplineThicknessKeyFrame per ridurre lo spessore del bordo. I fotogrammi chiave spline, come quelli derivati da SplineThicknessKeyFrame, creano una transizione variabile tra i valori, condizionata dai valori della proprietà KeySpline. In questo fotogramma chiave, l'animazione inizia lentamente e accelera in modo esponenziale verso la fine del segmento di tempo.
<!-- This example shows how to use the ThicknessAnimationUsingKeyFrames to create
an animation on the BorderThickness property of a Border. -->
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Microsoft.Samples.KeyFrameExamples.ThicknessAnimationUsingKeyFramesExample"
Name="myRootElement"
WindowTitle="ThicknessAnimationUsingKeyFrames Example">
<StackPanel Orientation="Vertical" HorizontalAlignment="Center">
<Border Background="#99FFFFFF" BorderBrush="#CCCCFF" BorderThickness="1"
Margin="0,60,0,20" Padding="20" >
<Border.Triggers>
<EventTrigger RoutedEvent="Border.Loaded">
<BeginStoryboard>
<Storyboard>
<!-- Animating the BorderThickness property uses 3 KeyFrames. -->
<ThicknessAnimationUsingKeyFrames
Storyboard.TargetProperty="BorderThickness"
Duration="0:0:5" FillBehavior="HoldEnd" RepeatBehavior="Forever">
<ThicknessAnimationUsingKeyFrames.KeyFrames>
<!-- Using a LinearThicknessKeyFrame, thickness increases gradually
over the first half second of the animation. -->
<LinearThicknessKeyFrame KeyTime="0:0:0.5">
<LinearThicknessKeyFrame.Value>
<Thickness Left="8" Right="8" Top="6" Bottom="6" />
</LinearThicknessKeyFrame.Value>
</LinearThicknessKeyFrame>
<!-- Using a DiscreteThicknessKeyFrame, thickness increases suddenly
after the first second of the animation. -->
<DiscreteThicknessKeyFrame KeyTime="0:0:1">
<DiscreteThicknessKeyFrame.Value>
<Thickness Left="28" Right="28" Top="24" Bottom="24" />
</DiscreteThicknessKeyFrame.Value>
</DiscreteThicknessKeyFrame>
<!-- Using a SplineThicknessKeyFrame, thickness decreases slowly at first
and then suddenly contracts. This KeyFrame takes 2 seconds. -->
<SplineThicknessKeyFrame KeySpline="0.6,0.0 0.9,0.00" KeyTime="0:0:3">
<SplineThicknessKeyFrame.Value>
<Thickness Left="1" Right="1" Top="1" Bottom="8" />
</SplineThicknessKeyFrame.Value>
</SplineThicknessKeyFrame>
</ThicknessAnimationUsingKeyFrames.KeyFrames>
</ThicknessAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Border.Triggers>
<TextBlock>
This example shows how to use the ThicknessAnimationUsingKeyFrames to create
an animation on the BorderThickness property of a Border.
</TextBlock>
</Border>
</StackPanel>
</Page>
Per l'esempio completo, vedere esempio di animazione basata su fotogrammi chiave.
Vedere anche
.NET Desktop feedback