我从我的项目中提取了这段代码,因为我试图找到一个让我BeginStoryboard
停止自己的错误。我尽可能地简化了代码,但我仍然没有看到问题。您认为它可能是什么?
<Window Width="640" Height="480" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<StackPanel>
<Button Content="Start" Name="Button" Width="200">
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<BeginStoryboard Name="Storyboard">
<Storyboard>
<DoubleAnimation By="150" Duration="0:0:5" Storyboard.TargetName="Button" Storyboard.TargetProperty="Width"/>
<StringAnimationUsingKeyFrames Storyboard.TargetName="Button" Storyboard.TargetProperty="Content">
<DiscreteStringKeyFrame KeyTime="0:0:5" Value="Did you click? Because I obviously didn't stop..."/>
</StringAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
<Button Content="Stop">
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<StopStoryboard BeginStoryboardName="Storyboard"/>
</EventTrigger>
</Button.Triggers>
</Button>
</StackPanel>
</Window>
自己尝试代码,首先按钮触发故事板,第二个应该停止它,但没有任何反应,因此第一个按钮中的动画很快就会继续。
答案 0 :(得分:4)
您的BeginStoryboard
位于不同的命名范围内,因此StopStoryboard
看不到它。
您需要将两个触发器放在同一个集合中,例如the MSDN example。