silverlight – 加载的事件没有完全加载

silverlight – 加载的事件没有完全加载,第1张

概述我觉得很傻,但我找不到答案.假设我想在MainPage加载时向用户显示一些消息.问题是,如果我在Loaded事件(MessageBox.Show())上执行此 *** 作,d出窗口会在我的页面加载之前显示,这会使用户留下此消息和黑色背景.这是一种沉闷的情况.任何事件的想法可以做到这一点.还有其他方法,如后台工作者或NavigationInTransition_EndTransition事件,但应该有更优雅 我觉得很傻,但我找不到答案.假设我想在MainPage加载时向用户显示一些消息.问题是,如果我在Loaded事件(MessageBox.Show())上执行此 *** 作,d出窗口会在我的页面加载之前显示,这会使用户留下此消息和黑色背景.这是一种沉闷的情况.任何事件的想法可以做到这一点.还有其他方法,如后台工作者或NavigationInTransition_EndTransition事件,但应该有更优雅的方式?解决方法 您可以轻松测试所有标准方法.我花了这么多时间来写这篇文章.

在页面构造函数中:

Loaded += new RoutedEventHandler(TestPage_Loaded);LayoutUpdated += new EventHandler(TestPage_LayoutUpdated);

各方法:

voID TestPage_LayoutUpdated(object sender,EventArgs e)    {        DeBUG.Writeline("LayoutUpdated");    }    voID TestPage_Loaded(object sender,RoutedEventArgs e)    {        DeBUG.Writeline("Loaded");        dispatcher.BeginInvoke(() =>        {            DeBUG.Writeline("Loaded -> BeginInvoke");        });    }

添加调试写入OnNavigateto()也是如此.

如果您的页面与我的页面相似,那么您可以获得如下内容:

> OnNavigatedTo
> LayoutUpdated
>加载
> LayoutUpdated
>加载 – >的BeginInvoke
>多次LayoutUpdated

最后的LayoutUpdated将是最佳候选者,但如何检测它?因此,“Loaded – > BeginInvoke”似乎是琐碎的选择中最好的选择.

您还可以使用页面上各个组件的已加载事件.这也很简单.它们有时可能发生在第4步和第5步之间.

如果上述选项都没有帮助(我不这么认为),则必须使用非标准逻辑.如上面提到的一次性定时器,在一段时间后显示消息.或者将您的逻辑基于LayoutUpdated计数器.

总结

以上是内存溢出为你收集整理的silverlight – 加载的事件没有完全加载全部内容,希望文章能够帮你解决silverlight – 加载的事件没有完全加载所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1000949.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存