كيفية القيام بما يلي: استخدام مشغلات الحدث للتحكم في لوحة العمل بعد بدئها

يوضح هذا المثال كيفية التحكم في Storyboard بعد أن يبدأ. لبدء تشغيل Storyboard باستخدام XAML استخدم BeginStoryboard، الذي يقوم بتوزيع الحركة إلى الكائنات و الخصائص التي يتم تحريكها و ثم يُبدأ لوحة العمل. إذا أعطيت BeginStoryboard اسم بواسطة تحديد خاصية Name ، فانك تقوم بجعله لوحة عمل قابلة للتحكم. يمكنك بعدها التحكم بشكل تبادلي في لوحة العمل بعد بدء تشغيلها.

استخدم إجراءات لوحة العمل التالية مع كائنات EventTrigger للتحكم في لوحة العمل.

مثال

يستخدم المثال التالي إجراءات لوحة عمل قابلة للتحكم من أجل التحكم بشكل تبادلي مع لوحة العمل.

ملاحظة: لمشاهدة مثال على التحكم في لوحة العمل باستخدام تعليمات برمجية راجع كيفية القيام بما يلي: التحكم فى لوحة العمل بعد بدءها.

<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>

للحصول على مزيد من الأمثلة، راجع معرض مثال الحركة .

راجع أيضًا:

المهام

كيفية القيام بما يلي: التحكم فى لوحة العمل بعد بدءها

المرجع

ResumeStoryboard

SetStoryboardSpeedRatio

SkipStoryboardToFill

PauseStoryboard

StopStoryboard

SeekStoryboard

المبادئ

نظرة عامة حول الحركة

نظرة عامة حول لوحات العمل