2009-11-28 114 views
0

任何人都可以告訴我這將如何在C#中看起來像?將XAML EventTrigger轉換爲C#代碼

<EventTrigger RoutedEvent="Button.Click" SourceName="btnSplit"> 
       <EventTrigger.Actions> 
        <BeginStoryboard> 
         <Storyboard> 
          <DoubleAnimation From="0" To="1" Duration="0:0:0.25" Storyboard.TargetName="gridSplit" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/> 
          <DoubleAnimation From="1" To="0" Duration="0:0:0.25" Storyboard.TargetName="gridJoin" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/> 
         </Storyboard> 
        </BeginStoryboard> 
       </EventTrigger.Actions> 
      </EventTrigger> 

我不需要「RoutedEvent」 - 第一部分,因爲我要執行的代碼,當用戶點擊一個按鈕編程方式(點擊事件處理程序)..的RoutedEvent處理器被稱爲第一這就是爲什麼我不能做if-else並需要在代碼隱藏中完成整個動畫。

在此先感謝!

MemphiZ

回答

3

解決了!

只要給故事板的X:名稱,然後調用它像這樣:

<Storyboard x:Name="storyBoardName"> 
    <DoubleAnimation From="0" To="1" Duration="0:0:0.25" Storyboard.TargetName="grid1" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/> 
    <DoubleAnimation From="1" To="0" Duration="0:0:0.25" Storyboard.TargetName="grid2" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/> 
</Storyboard> 

Storyboard story = (Storyboard)this.FindResource("storyBoardName"); 
this.BeginStoryboard(story);