2012-06-22 148 views
0

我想在我的WP7應用程序中實現墓碑,並且此應用程序不基於MVVM模式。任何人都可以引用我的一個很好的例子來實現它。所以我可以用一些泛型類來維護我的應用程序的狀態。WP7中的墓碑

回答

2

這裏是指那些很好解釋它幾個環節:

這一次做得很好解釋,你要管理不同的國家,包括暫停和墓碑之間的差異。 http://lnluis.wordpress.com/2011/09/25/fast-application-switching-in-windows-phone/

肖恩Wildermuth是真的很好,並告訴你如何在這個視頻實現。 http://vimeo.com/14311977

這裏有一個博客帖子,在良好的細節 http://xna-uk.net/blogs/darkgenesis/archive/2010/11/08/there-and-back-again-a-tombstoning-tale-the-return-of-the-application.aspx

解釋這一個是在Windows Phone開發者博客: http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/07/15/understanding-the-windows-phone-application-execution-model-tombstoning-launcher-and-choosers-and-few-more-things-that-are-on-the-way-part-1.aspx

基本上,當你想墓碑,你需要使用Application_Deactivated事件將變量存儲在獨立存儲中,並使用Application_Activated事件來檢索它們。隨着芒果的出現(去年秋季),您應該在Application_Activated中進行測試,以查看該應用是否來自暫停狀態。

if (!e.IsApplicationInstancePreserved) 
    { 
    //do stuff to restore from tombstoned 
    } 

編輯添加另一個例子: 也許這個額外的簡單例子會幫助你。 http://dotnet-redzone.blogspot.com/2010/09/windows-phone-7-scrollbar-position.html

protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e) 
{ 
    base.OnNavigatedFrom(e); 
    // Remember scroll offset 
    try 
     { 
      ScrollViewer viewer = ((VisualTreeHelper.GetChild(listBox, 0) as FrameworkElement).FindName("ScrollViewer") as ScrollViewer); 
      State["scrollOffset"] = viewer.VerticalOffset; 
     } 
    catch { } 
} 

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 
    object offset; 
    // Return scroll offset 
    if (State.TryGetValue("scrollOffset", out offset)) 
     listBox.Loaded += delegate 
     { 
      try 
      { 
       ScrollViewer viewer = ((VisualTreeHelper.GetChild(listBox, 0) as FrameworkElement).FindName("ScrollViewer") as ScrollViewer); 
       viewer.ScrollToVerticalOffset((double)offset); 
      } 
      catch { } 
     }; 
} 
+0

我也建議Shawn的書:http://www.amazon.com/Essential-Windows-Phone-7-5-Application/dp/0321752139 –

+0

感謝這樣詳細的解答。我知道墓碑的基本概念。在我的情況下,我有PanromaPage,並且它上面有很多東西像其他項目列表框上的一個項目上的Longlist選擇器和On Thir Item上有很多文本框。所以我想保留我的頁面的狀態,或者你可以說我的控制狀態。我很困惑如何實現這個 –

+0

你沒有提供大量的信息。就像控件綁定了某些東西,等等。下面是另一個很好的詳細例子 - 它有幫助嗎? http://blogs.microsoft.co.il/blogs/alex_golesh/archive/2010/07/14/silverlight-for-windows-phone-7-tombstoning.aspx –