頁面導航

win8中是沒有對話框的概念的,不同的界面是不同的頁面,類似於網頁,通過Frame.Navigate(typeof(Page),obj參數)來在不同的頁面間導航。

Frame屬性的方法:GoBack()後退;GoForward()前進;CanGoBack屬性判斷是否可以後退。

後臺中調用:(Frame就是Page的一個屬性)

<pre name="code" class="csharp">Frame.Navigate(typeof(myPage));
Frame.GoBack();


傳參數:

//傳參數
Frame.Navigate(typeof(myPage),1);
//獲取參數
int i = (int)e.Parameter;

頁面導航默認是不啓用緩存,也就是後退以後前一個頁面恢復成原始狀態,需要在構造函數中執行:(啓用緩存選項

NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled;

三個和頁面導航相關的虛方法:(重寫虛方法)

OnNavigatedTo:當頁面成爲活動頁面時調用。e.NavigationMode得知是新來的New還是後退進來的Back還是前進來的Forward,一般數據初始化放到OnNavigatedTo中,注意判斷Mode

override void OnNavigatedTo()
{
//因爲後退回來還會觸發。所以需要判斷只有是新進入的New,才加載數據
 if(e.NavigationMode == NavigationMode.Back){//加載數據}
}

OnNavigatedFrom:當頁面不再是活動頁面時調用

OnNavigatingFrom:在頁面即將不再是活動頁面時調用,實現確認是否退出

override void OnNavigatingFrom()
{
e.Cancel = true;//阻止離開頁面
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章