كيفية القيام بما يلي: استخدام مشغلات الحدث للتحكم في لوحة العمل بعد بدئها
يوضح هذا المثال كيفية التحكم في Storyboard بعد أن يبدأ. لبدء تشغيل Storyboard باستخدام XAML استخدم BeginStoryboard، الذي يقوم بتوزيع الحركة إلى الكائنات و الخصائص التي يتم تحريكها و ثم يُبدأ لوحة العمل. إذا أعطيت BeginStoryboard اسم بواسطة تحديد خاصية Name ، فانك تقوم بجعله لوحة عمل قابلة للتحكم. يمكنك بعدها التحكم بشكل تبادلي في لوحة العمل بعد بدء تشغيلها.
استخدم إجراءات لوحة العمل التالية مع كائنات EventTrigger للتحكم في لوحة العمل.
PauseStoryboard: إيقاف مؤقت للوحة العمل.
ResumeStoryboard: استئناف لوحة العمل متوقفة مؤقتاً.
SetStoryboardSpeedRatio: تغيير سرعة لوحة العمل.
SkipStoryboardToFill: يٌقدم لوحة العمل إلى نهاية فترة التعبئة إذا كان لديه.
StopStoryboard: ايقاف لوحة العمل.
RemoveStoryboard: يزيل لوحة العمل، تحرير الموارد.
مثال
يستخدم المثال التالي إجراءات لوحة عمل قابلة للتحكم من أجل التحكم بشكل تبادلي مع لوحة العمل.
ملاحظة: لمشاهدة مثال على التحكم في لوحة العمل باستخدام تعليمات برمجية راجع كيفية القيام بما يلي: التحكم فى لوحة العمل بعد بدءها.
<Page xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
WindowTitle="Controlling a Storyboard" >
<StackPanel Margin="20" >
<!-- This rectangle is animated. -->
<Rectangle Name="myRectangle"
Width="100" Height="20" Margin="12,0,0,5" Fill="#AA3333FF" HorizontalAlignment="Left" />
<!-- This StackPanel contains all the Buttons. -->
<StackPanel Orientation="Horizontal" Margin="0,30,0,0">
<Button Name="BeginButton">Begin</Button>
<Button Name="PauseButton">Pause</Button>
<Button Name="ResumeButton">Resume</Button>
<Button Name="SeekButton">Seek</Button>
<Button Name="SkipToFillButton">Skip To Fill</Button>
<Button Name="SetSpeedRatioButton">Triple Speed</Button>
<Button Name="StopButton">Stop</Button>
<StackPanel.Triggers>
<!-- Begin the Storyboard -->
<EventTrigger RoutedEvent="Button.Click" SourceName="BeginButton">
<BeginStoryboard Name="MyBeginStoryboard">
<Storyboard >
<DoubleAnimation
Storyboard.TargetName="myRectangle"
Storyboard.TargetProperty="Width"
Duration="0:0:5" From="100" To="500" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<!-- Pause the Storyboard -->
<EventTrigger RoutedEvent="Button.Click" SourceName="PauseButton">
<PauseStoryboard BeginStoryboardName="MyBeginStoryboard" />
</EventTrigger>
<!-- Resume the Storyboard -->
<EventTrigger RoutedEvent="Button.Click" SourceName="ResumeButton">
<ResumeStoryboard BeginStoryboardName="MyBeginStoryboard" />
</EventTrigger>
<!-- Seek one second into the storyboard's active period. -->
<EventTrigger RoutedEvent="Button.Click" SourceName="SeekButton">
<SeekStoryboard
BeginStoryboardName="MyBeginStoryboard"
Offset="0:0:1" Origin="BeginTime" />
</EventTrigger>
<!-- Skip to Fill -->
<EventTrigger RoutedEvent="Button.Click" SourceName="SkipToFillButton">
<SkipStoryboardToFill BeginStoryboardName="MyBeginStoryboard" />
</EventTrigger>
<!-- Stop the Storyboard -->
<EventTrigger RoutedEvent="Button.Click" SourceName="StopButton">
<StopStoryboard BeginStoryboardName="MyBeginStoryboard" />
</EventTrigger>
<!-- Triple the speed of the Storyboard -->
<EventTrigger RoutedEvent="Button.Click" SourceName="SetSpeedRatioButton">
<SetStoryboardSpeedRatio SpeedRatio="3" BeginStoryboardName="MyBeginStoryboard" />
</EventTrigger>
</StackPanel.Triggers>
</StackPanel>
</StackPanel>
</Page>
للحصول على مزيد من الأمثلة، راجع معرض مثال الحركة .
راجع أيضًا:
المهام
كيفية القيام بما يلي: التحكم فى لوحة العمل بعد بدءها