Практическое руководство. Указание режима FillBehavior для временной шкалы, достигшей конца периода активности
В этом примере показано, как указать FillBehavior неактивное Timeline анимированное свойство.
Пример
Свойство FillBehavior определяет Timeline , что происходит со значением анимированного свойства, когда оно не анимируется, то есть, когда Timeline он неактивен, но его родитель Timeline находится внутри его активного или удерживаемого периода. Например, анимированное свойство остается в конце после завершения анимации или отменить изменения обратно к значению, которое было до начала анимации?
В следующем примере используется анимация DoubleAnimationWidth двух прямоугольников. Каждый прямоугольник использует другой Timeline объект.
Имеет Timeline значение Stop, которое приводит к тому, что ширина прямоугольника отменить изменения обратно к неинимированному значению, когда Timeline заканчивается.FillBehavior Timeline Другой имеет значение FillBehaviorHoldEnd, которое приводит к тому, что ширина остается в конечном значении, когда заканчиваетсяTimeline.
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<StackPanel Margin="20">
<Border Background="#99FFFFFF">
<TextBlock Margin="20">
This example shows how the FillBehavior property determines how an animation behaves
after it reaches the end of its duration.
</TextBlock>
</Border>
<TextBlock>FillBehavior="Deactivate"</TextBlock>
<Rectangle Name="deactiveAnimationRectangle" Width="20" Height="20" Fill="#AA3333FF" HorizontalAlignment="Left" >
<Rectangle.Triggers>
<EventTrigger RoutedEvent="Rectangle.Loaded">
<BeginStoryboard>
<Storyboard>
<!-- The animated rectangle's width reverts back to its non-animated value
after the animation ends. -->
<DoubleAnimation
Storyboard.TargetName="deactiveAnimationRectangle"
Storyboard.TargetProperty="Width"
From="100" To="400" Duration="0:0:2" FillBehavior="Stop" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Rectangle.Triggers>
</Rectangle>
<TextBlock Margin="0,20,0,0">FillBehavior="HoldEnd" </TextBlock>
<Rectangle Name="holdEndAnimationRectangle" Width="20" Height="20" Fill="#AA3333FF" HorizontalAlignment="Left" >
<Rectangle.Triggers>
<EventTrigger RoutedEvent="Rectangle.Loaded">
<BeginStoryboard>
<Storyboard>
<!-- The animated rectangle's width remains at its end value after the
animation ends. -->
<DoubleAnimation Storyboard.TargetName="holdEndAnimationRectangle"
Storyboard.TargetProperty="Width"
From="100" To="400" Duration="0:0:2" FillBehavior="HoldEnd" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Rectangle.Triggers>
</Rectangle>
</StackPanel>
</Page>
Полный пример см. в разделе Коллекция примеров анимации.
См. также
.NET Desktop feedback
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по