방법: 동기적으로 Storyboard 검색
.NET Framework 3.5
업데이트: 2007년 11월
다음 예제에서는 Storyboard의 SeekAlignedToLastTick 메서드를 사용하여 Storyboard 애니메이션에서 원하는 위치를 동기적으로 검색하는 방법을 보여 줍니다.
다음은 XAML 태그 샘플입니다.
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="SDKSample.SeekStoryboardSynchronouslyExample"> <StackPanel Margin="20" > <Rectangle Name="myRectangle" Width="10" Height="20" Fill="#AA3333FF" HorizontalAlignment="Left" > <Rectangle.Triggers> <EventTrigger RoutedEvent="Rectangle.Loaded"> <BeginStoryboard Name="myBeginStoryboard"> <Storyboard Name="myStoryboard" Duration="0:0:4"> <DoubleAnimation Storyboard.TargetName="myRectangle" Storyboard.TargetProperty="Width" Duration="0:0:4" From="10" To="500"/> </Storyboard> </BeginStoryboard> </EventTrigger> </Rectangle.Triggers> </Rectangle> <!-- Use this slider to seek to different points of the Storyboard Duration (in milliseconds). --> <Slider Name="SeekSlider" ValueChanged="OnSliderValueChanged" Height="Auto" Width="500" Minimum="0" Maximum="4000" HorizontalAlignment="Left" /> <!-- TextBlock displays the current time position of the Storyboard in milliseconds. --> <TextBlock Name="PositionTextBlock"/> </StackPanel> </Page>
다음은 위의 XAML 코드와 함께 사용되는 코드입니다.
using System; using System.Media; using System.Windows; using System.Windows.Controls; using System.Windows.Media.Animation; namespace SDKSample { public partial class SeekStoryboardSynchronouslyExample : Page { private void OnSliderValueChanged(object sender, RoutedEventArgs e) { int sliderValue = (int)SeekSlider.Value; // The SeekAlignedToLastTick method should be used to seek a Storyboard synchronously. myStoryboard.SeekAlignedToLastTick(myRectangle, new TimeSpan(0, 0, 0, 0, sliderValue), TimeSeekOrigin.BeginTime); PositionTextBlock.Text = sliderValue.ToString(); } } }