我正在嘗試解決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