在WPF中暂停故事板?

时间:2010-02-13 11:52:08

标签: c# .net wpf storyboard

我要在WPF中暂停一个故事板,所以我使用了以下代码:

Storyboard TheStoryboard;

//Constructor 
public window
{
    TheStoryboard = (Storyboard)this.FindResource("TheStoryboardName");
}

private void MenuItemPause_Click(object sender, RoutedEventArgs e)
{
    TheStoryboard.Pause();
}

但没有任何事情发生! 这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:3)

我发现了问题 我已经添加了一个启动故事板的触发器,如下所示:

<Window.Triggers>
    <EventTrigger RoutedEvent="FrameworkElement.Loaded">
        <BeginStoryboard Storyboard="{StaticResource TheStoryboardName}"/>
    </EventTrigger>
</Window.Triggers>

我省略了它,并添加了一个用于开始故事板的C#代码:

Storyboard TheStoryboard;

//Constructor 
public window
{
    TheStoryboard = (Storyboard)this.FindResource("TheStoryboardName");
    TheStoryboardName.Begin();
}

现在,以下代码运行良好。

private void MenuItemPause_Click(object sender, RoutedEventArgs e)
{
    TheStoryboard.Pause();
}

答案 1 :(得分:1)

我遇到了同样的问题。

但它与.NET Framework 3.5中的行为相关联。 4似乎有所不同。

我有一个项目是通过.NET Framework 3.5构建的,然后更改为.NET Framework 4。

在3.5中,我还有你提到的触发器来开始故事板。但我仍然可以在我的代码中暂停它。

4,我无法用触发器暂停故事板。

所以我移动它,现在故事板按照我的预期工作。

感谢您的分享。