StopStoryboard不会...停止BeginStoryboard

时间:2011-10-28 14:13:34

标签: wpf xaml animation storyboard

我从我的项目中提取了这段代码,因为我试图找到一个让我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>

自己尝试代码,首先按钮触发故事板,第二个应该停止它,但没有任何反应,因此第一个按钮中的动画很快就会继续。

1 个答案:

答案 0 :(得分:4)

您的BeginStoryboard位于不同的命名范围内,因此StopStoryboard看不到它。

您需要将两个触发器放在同一个集合中,例如the MSDN example