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
我有一个 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