2015-02-07 39 views
0

我有一個xaml頁面,其中有一個符號定義爲路徑。XAML DataTrigger啓用StoryBoard

該路徑具有RenderTransform以使其旋轉。

的路徑被定義爲:

<Path x:Name="MyPath" Width="80.6014" Height="80.9457" Canvas.Left="526.107" Canvas.Top="812.571" Stretch="Fill" Fill="#FFBABABA" Data="F1 M …. Z "> 
    <Path.RenderTransform> 
     <RotateTransform x:Name="Rotating" CenterX="40.62" CenterY="40.79" Angle="0"/> 
    </Path.RenderTransform> 
</Path> 

當由祖先畫布Load事件引發的路徑可以旋轉:

<Canvas.Triggers> 
    <EventTrigger RoutedEvent="ContentControl.Loaded"> 
     <BeginStoryboard> 
      <Storyboard> 
       <DoubleAnimation Storyboard.TargetName="Rotating" Storyboard.TargetProperty="Angle" From="0" To="360" Duration="0:0:03.0" RepeatBehavior="Forever" /> 
      </Storyboard> 
     </BeginStoryboard> 
    </EventTrigger> 
</Canvas.Triggers> 

,但我想它作爲一個約束的結果,旋轉屬性(活動)實現INotifyPropertyChanged,我猜,使用DataTrigger。

我只是不知道如何把它綁在一起。

任何人都可以指向正確的方向嗎?

回答

1

好的,我明白了。

Path對象需要一個風格:

<Path Style="{StaticResource RotateStyle}" x:Name="Path" ... 

而作爲風格可以定義爲:

<Style x:Key="RotateStyle" TargetType="{x:Type Path}"> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding Path=Active, Mode=OneWay}" Value="On"> 
      <DataTrigger.EnterActions> 
       <BeginStoryboard> 
        <Storyboard> 
         <DoubleAnimation From="0" To="360" Duration="0:0:03.0" RepeatBehavior="Forever" 
              Storyboard.TargetProperty="(RenderTransform).(RotateTransform.Angle)"/> 
        </Storyboard> 
       </BeginStoryboard> 
      </DataTrigger.EnterActions> 
      <DataTrigger.ExitActions> 
       <BeginStoryboard> 
        <Storyboard> 
         <DoubleAnimation To="0" Duration="0:0:03.0" 
             Storyboard.TargetProperty="(RenderTransform).(RotateTransform.Angle)"/> 
        </Storyboard> 
       </BeginStoryboard> 
      </DataTrigger.ExitActions> 

     </DataTrigger> 
    </Style.Triggers> 
</Style> 

這篇文章給我的答案:WPF RotateTransform DataTrigger