2009-09-29 63 views
1

我使用故事板創建一個動畫並且整個事情都在ItemsControl中,當我開始動畫時啓動應用程序,但是我希望能夠在我們從數據庫接收到值時立即停止動畫。如何獲取ItemsControl模板中的特定故事板,以便我可以在後面的代碼中停止它。還是有一個屬性,我可以將數據綁定和使用在代碼後面。SilverLight StoryBoard問題

目前我的代碼看起來像這樣

<StackPanel 
    x:Name="spStart" 
    Margin="0,10,5,0"> 
    <Image x:Name="Round" Source="Images/Start.png" 
    Height="35" 
    Stretch="Uniform" 
    ToolTipService.ToolTip="Start" 
    RenderTransformOrigin="0.5,0.5"> 
    <Image.RenderTransform> 
     <TransformGroup> 
     <RotateTransform/> 
     </TransformGroup> 
    </Image.RenderTransform> 

    <Image.Triggers> 
     <EventTrigger RoutedEvent="Grid.Loaded"> 
     <BeginStoryboard> 
      <Storyboard x:Name="RotatingStory" Completed="myStoryboard_Completed" 
      x:Uid="{Binding FileReceived}"> 
      <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" 
       Storyboard.TargetName="Round" 
       Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(RotateTransform.Angle)"> 
       <SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/> 
       <SplineDoubleKeyFrame KeyTime="00:00:03" Value="360"/> 
      </DoubleAnimationUsingKeyFrames> 
      </Storyboard> 
     </BeginStoryboard> 
     </EventTrigger> 
    </Image.Triggers> 
    </Image> 
</StackPanel> 
+0

使用事件,讓你知道當你檢索的DB值。 – Goober 2009-09-29 08:15:31

+0

我是Silverlight的新手,能否請我指點一下教程 – rsapru 2009-09-29 08:24:44

回答

1

望着文檔已經試過這樣: -

var sb = ((BeginStoryBoard)Round.Triggers[0].Actions[0]).Storyboard; 
sb.Stop; // Or whatever else you want to do the storyboard such as SkipToFill. 
+0

我不得不這樣做 TriggerActionCollection actions =((System.Windows.EventTrigger)(Round.Triggers [0]))。 BeginStoryboard sbBeing =(BeginStoryboard)actions [0]; 但在哪個事件中我應該把這個代碼? – rsapru 2009-09-29 09:50:34

+0

非常感謝。 – rsapru 2009-09-29 10:46:03