WPF XAML动画绑定布尔值变为false时如何停止?

WPF XAML动画绑定布尔值变为false时如何停止?,wpf,xaml,animation,Wpf,Xaml,Animation,我希望当布尔CanAnimate变为false时动画停止。它从true开始,那么当CanAnimate为false时,我如何告诉它停止呢?(CanAnimate布尔设置在SelectedItem设置器内) 您可以尝试使用DataTrigger上的ExitActions停止动画,方法是使用另一个动画覆盖。例如: <DataTrigger Binding="{Binding CanAnimate}" Value="True"> <DataTrigger.EnterAction

我希望当布尔CanAnimate变为false时动画停止。它从true开始,那么当CanAnimate为false时,我如何告诉它停止呢?(CanAnimate布尔设置在SelectedItem设置器内)


您可以尝试使用DataTrigger上的ExitActions停止动画,方法是使用另一个动画覆盖。例如:

<DataTrigger Binding="{Binding CanAnimate}" Value="True">
   <DataTrigger.EnterActions>
       <BeginStoryboard>
           <Storyboard>
              <DoubleAnimation 
                    Storyboard.TargetProperty="(Border.Opacity)"
                    From="1.0" To="0.0" AutoReverse="True" 
                    RepeatBehavior="Forever" />
            </Storyboard>
       </BeginStoryboard>
   </DataTrigger.EnterActions>
   <DataTrigger.ExitActions>
        <BeginStoryboard>
           <Storyboard>
              <DoubleAnimation 
                    Storyboard.TargetProperty="(Border.Opacity)"
                    From="0.0" To="0.0" Duration="0:0:0.0" FillBehavior="HoldEnd" />
            </Storyboard>
       </BeginStoryboard>
   </DataTrigger.ExitActions>
</DataTrigger>

或者,有一种方法可以按名称停止XAML中的故事板,同样可以使用ExitActions。路标


希望这有帮助

+1我给每个故事板起了一个名字,然后我可以做StopStoryboard并提供名字。谢谢
<DataTrigger Binding="{Binding CanAnimate}" Value="True">
   <DataTrigger.EnterActions>
       <BeginStoryboard>
           <Storyboard>
              <DoubleAnimation 
                    Storyboard.TargetProperty="(Border.Opacity)"
                    From="1.0" To="0.0" AutoReverse="True" 
                    RepeatBehavior="Forever" />
            </Storyboard>
       </BeginStoryboard>
   </DataTrigger.EnterActions>
   <DataTrigger.ExitActions>
        <BeginStoryboard>
           <Storyboard>
              <DoubleAnimation 
                    Storyboard.TargetProperty="(Border.Opacity)"
                    From="0.0" To="0.0" Duration="0:0:0.0" FillBehavior="HoldEnd" />
            </Storyboard>
       </BeginStoryboard>
   </DataTrigger.ExitActions>
</DataTrigger>