一起學Windows Phone7開發(十.Windows Phone 7 CTP-April向Beta版遷移)

來源:互聯網
上載者:User

Windows phone 7 從發布到現在一共出了三個版本的SDK,並且互不相容。之前我寫了第一版向第二版的遷移,現在來看一下第二版到Beta版的變化。

一.App.xaml和App.cs

1.App.xaml

這個檔案看上去比原來清爽了很多,沒有大段大段的代碼,這也看來也和新的模擬器風格有關。但是這樣就會出問題了,原來的一個屬性項沒有了,造成原來的頁面載入錯誤。

a.把PhoneTextPageTitle2Style改為PhoneTextNormalStyle或自已再增加一個這樣的屬性。

b.

<Application.RootVisual>
         <phoneNavigation:PhoneApplicationFrame x:Name="RootFrame" Source="/MainPage.xaml"/>
     </Application.RootVisual>

這一項被取消。從而造成無法啟動應用程式。這個設定程式RootFrame的項被放到了設定檔裡。

2.App.xaml.cs

同樣的這個檔案也發生了改變。改動也是比較大的。需要增加和去除一些代碼(這裡的Appp 類的代碼):

public partial class App : Application
     {
         public PhoneApplicationFrame RootFrame { get; private set; }

         // Constructor
         public App()
         {
             // Global handler for uncaught exceptions.
             // Note that exceptions thrown by ApplicationBarItem.Click will not get caught here.
             UnhandledException += Application_UnhandledException;

             // Standard Silverlight initialization
             InitializeComponent();

             // Phone-specific initialization
             InitializePhoneApplication();
         }

         // Code to execute when the application is launching (eg, from Start)
         // This code will not execute when the application is reactivated
         private void Application_Launching(object sender, LaunchingEventArgs e)
         {
         }

         // Code to execute when the application is activated (brought to foreground)
         // This code will not execute when the application is first launched
         private void Application_Activated(object sender, ActivatedEventArgs e)
         {
         }

         // Code to execute when the application is deactivated (sent to background)
         // This code will not execute when the application is closing
         private void Application_Deactivated(object sender, DeactivatedEventArgs e)
         {
         }

         // Code to execute when the application is closing (eg, user hit Back)
         // This code will not execute when the application is deactivated
         private void Application_Closing(object sender, ClosingEventArgs e)
         {
         }

         // Code to execute if a navigation fails
         void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
         {
             if (System.Diagnostics.Debugger.IsAttached)
             {
                // A navigation has failed; break into the debugger
                 System.Diagnostics.Debugger.Break();
             }
         }

         // Code to execute on Unhandled Exceptions
         private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
         {
             if (System.Diagnostics.Debugger.IsAttached)
             {
                 // An unhandled exception has occurred; break into the debugger
                 System.Diagnostics.Debugger.Break();
             }
         }

         #region Phone application initialization

         // Avoid double-initialization
         private bool phoneApplicationInitialized = false;

         // Do not add any additional code to this method
         private void InitializePhoneApplication()
         {
             if (phoneApplicationInitialized)
                 return;

             // Create the frame but don't set it as RootVisual yet; this allows the splash
             // screen to remain active until the application is ready to render.
             RootFrame = new PhoneApplicationFrame();
             RootFrame.Navigated += CompleteInitializePhoneApplication;

             // Handle navigation failures
             RootFrame.NavigationFailed += RootFrame_NavigationFailed;

             // Ensure we don't initialize again
             phoneApplicationInitialized = true;
         }

         // Do not add any additional code to this method
         private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e)
         {
             // Set the root visual to allow the application to render
             if (RootVisual != RootFrame)
                 RootVisual = RootFrame;

             // Remove this handler since it is no longer needed
             RootFrame.Navigated -= CompleteInitializePhoneApplication;
         }

         #endregion
     }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.