2015-02-07 3 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> 

Путь может вращаться, когда срабатывает по событию предок Canvas нагрузки:

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

Но я хотел бы, чтобы вращаться в результате связанного свойство (Active), которое реализует 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

Смежные вопросы