我正在尝试解决AdMob控件在我的游戏中出现的一些问题,并且该控件需要一些时间来加载(它劫持UI线程长达1秒)。是否可以加载控件一次,然后将它存储在某个地方并将其附加到随后页面的可视化树中?wp7 - 是否可以在页面之间加载用户控件?
或者这不能完成,我必须找到其他方法吗?
我正在尝试解决AdMob控件在我的游戏中出现的一些问题,并且该控件需要一些时间来加载(它劫持UI线程长达1秒)。是否可以加载控件一次,然后将它存储在某个地方并将其附加到随后页面的可视化树中?wp7 - 是否可以在页面之间加载用户控件?
或者这不能完成,我必须找到其他方法吗?
是的,你可以。您需要在该页面上保存该控件的状态。
Please refer this MSDN Documentation for states of windows phone 7
我希望你可以从这个
更新更好的想法====
Deployment.Current.Dispatcher.BeginInvoke(new System.Action(delegate()
{
// Load Your Control Here
}));
它不会冻结您的UI
您可以简单地添加控件页面运行时:
this.LayoutRoot.Children.Add(control)
如果您静态地定义您的控件,则可以从OnNavigatingFrom事件中的当前页面中将其删除,然后将其加载到下一页面或类似的内容上,以防止多个父母崩溃。
不,问题在于,Google AdMob控件需要一些时间来加载(并冻结整个页面),所以我想将它加载到某处然后将其插入目标页面。控制状态不会有帮助,因为它会再次冻结页面。 – Axarydax
请参阅我的更新回答 –
根据文档 - http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatcher.begininvoke.aspx - 调度程序在UI线程上工作,所以它应该没有什么区别,但我会尝试 – Axarydax