[Windows Phone] Dynamic Your App First Page
一般建立好WindowsPhone專案後,預設的起始頁面是MainPage.xaml,如果我們想直接改掉它的話,可以在專案屬性定義檔WMAppManifest.xaml中進行調整。
但這個設定仍然只能讓App固定在某一個起始頁面,當我們想在App裡動態決定起始頁面時,該如何做呢?
需求情境 : 當使用者已有登入,此時App要能自動進入功能清單頁面,反之則進入登入頁面
解決方式:在WindowsPhone App生命週期裡有四個重要事件點,打開App..xaml可以看到如下4個事件(中文解釋滿清楚的,就不多做說明)
我們可以在Application_Launching事件動手腳,在App Run起來時動態決定接下來的第一個頁面是誰,如以下程式碼(程式碼中IsLogin是自訂的方法)
private void Application_Launching(object sender, LaunchingEventArgs e) { if(IsLogin()) { Uri uri = new Uri("/Main.xaml", UriKind.Relative); ((App)Application.Current).RootFrame.Navigate(uri); } else { Uri uri = new Uri("/Login.xaml", UriKind.Relative); ((App)Application.Current).RootFrame.Navigate(uri); } }
接著要注意一點的是:必須把專案屬性定義檔WMAppManifest.xaml裡的『巡覽頁面』設定值拿掉,這樣才能運作,雖然它會出現警告,但沒關係。
這樣就可以很簡單達到動態決定App起始頁面的機制囉。
若本文對您有所幫助,歡迎轉貼,但請在加註【轉貼】及來源出處,並在附上本篇的超連結,感恩您的配合囉。
By No.18