如何知道窗口是否已完成加载



我正在使用WPF构建一个应用程序,我有两个动画,我希望它们之间有延迟。但当我在中尝试时

MainWindow_Loaded(object sender, RoutedEventArgs e)

事件,它只是在加载时延迟,我错过了第一个动画。

有什么帮助吗?

也许值得一试的是使用Dispatcher对象通过动画调用代码。通过设置调度程序优先级,您可以推迟执行,直到例如完成所有数据绑定(甚至异步)。

   // Schedule the update function in the UI thread.
   Dispatcher.BeginInvoke(
      System.Windows.Threading.DispatcherPriority.Loaded, ...);

如果这不起作用,请尝试更改优先级-优先级越低,您的操作将被调用得越晚。

我已经成功地使用Window.ContentRendered(或Me.ContentRender)来确定窗口何时完成加载。

请参阅此答案

不幸的是,没有内置通知通知您加载(绑定渲染)已完成。所以应该想出你自己的解决方案。

可以在MainWindow_Loaded中写这样的东西(伪代码):

new Thread(new ThreadStart(new Action(() =>
{
      Sleep(2000); // a couple of seconds sleep 
      StartAnimation(); 
}))).Start();

希望这能有所帮助。

相关内容

  • 没有找到相关文章

最新更新