[Windows Phone] Dynamic Your App First Page

[Windows Phone] Dynamic Your App First Page

一般建立好WindowsPhone專案後,預設的起始頁面是MainPage.xaml,如果我們想直接改掉它的話,可以在專案屬性定義檔WMAppManifest.xaml中進行調整。

image

 

但這個設定仍然只能讓App固定在某一個起始頁面,當我們想在App裡動態決定起始頁面時,該如何做呢?

需求情境 : 當使用者已有登入,此時App要能自動進入功能清單頁面,反之則進入登入頁面

解決方式:在WindowsPhone App生命週期裡有四個重要事件點,打開App..xaml可以看到如下4個事件(中文解釋滿清楚的,就不多做說明)

image

 

我們可以在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裡的『巡覽頁面』設定值拿掉,這樣才能運作,雖然它會出現警告,但沒關係。

image

 

這樣就可以很簡單達到動態決定App起始頁面的機制囉。

 

若本文對您有所幫助,歡迎轉貼,但請在加註【轉貼】及來源出處,並在附上本篇的超連結,感恩您的配合囉。

By No.18