ContentFrame.Navigate - 未在Page_Load上显示的故事板

时间:2011-11-16 17:58:25

标签: silverlight

我有一个简单的silverlight导航应用程序。

当在内容框架上导航页面时,我需要启动一个故事板。

起初一切似乎都很好。但现在我需要在页面加载时进行一些处理(大约需要3秒钟),就在显示故事板之前。

现在我再也看不到我的Storyboard动画了。即使在我的数据加载后启动了故事板。

我可以使用Thread.Sleep来模拟我的问题,就像它做同样的事情:

private void Page_Loaded(object sender, RoutedEventArgs e)
{
    System.Threading.Thread.Sleep(3000);
    Storyboard1_Test.Begin();
}

1 个答案:

答案 0 :(得分:2)

从事件处理程序触发UI更改有时会出现此类问题。通常使用Dispatcher.BeginInvoke方法解决它。

所以,只需尝试从Storyboard1_Test.Begin();

进行午餐Dispatcher.BeginInvoke

一些代码(希望你不介意我使用的是VB.NET):

Dispatcher.BeginInvoke(Sub()
                         Storyboard1_Test.Begin()
                       End Sub)

通过使用dispatcher.BeginInvoke,您可以在线程可用时验证作业是否在UI线程上执行。