我要在WPF中暂停一个故事板,所以我使用了以下代码:
Storyboard TheStoryboard;
//Constructor
public window
{
TheStoryboard = (Storyboard)this.FindResource("TheStoryboardName");
}
private void MenuItemPause_Click(object sender, RoutedEventArgs e)
{
TheStoryboard.Pause();
}
但没有任何事情发生! 这样做的正确方法是什么?
答案 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,我无法用触发器暂停故事板。
所以我移动它,现在故事板按照我的预期工作。
感谢您的分享。