XAML DataTrigger 以启用 StoryBoard

XAML DataTrigger to enable StoryBoard

我有一个 xaml 页面,其中有一个定义为路径的符号。

该路径有一个 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>

但我想它会因为绑定 属性(活动)而旋转,我猜是使用 DataTrigger 实现了 INotifyPropertyChanged。

就是不知道怎么搭配。

谁能给我指出正确的方向?

好的,我知道了。

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