我有一个简单的silverlight导航应用程序。
当在内容框架上导航页面时,我需要启动一个故事板。
起初一切似乎都很好。但现在我需要在页面加载时进行一些处理(大约需要3秒钟),就在显示故事板之前。
现在我再也看不到我的Storyboard动画了。即使在我的数据加载后启动了故事板。
我可以使用Thread.Sleep来模拟我的问题,就像它做同样的事情:
private void Page_Loaded(object sender, RoutedEventArgs e)
{
System.Threading.Thread.Sleep(3000);
Storyboard1_Test.Begin();
}
答案 0 :(得分:2)
从事件处理程序触发UI更改有时会出现此类问题。通常使用Dispatcher.BeginInvoke方法解决它。
所以,只需尝试从Storyboard1_Test.Begin();
Dispatcher.BeginInvoke
一些代码(希望你不介意我使用的是VB.NET):
Dispatcher.BeginInvoke(Sub()
Storyboard1_Test.Begin()
End Sub)
通过使用dispatcher.BeginInvoke,您可以在线程可用时验证作业是否在UI线程上执行。