WPF頁面跳轉有兩種:一種是windows埠忘,另外一種是page
1:windows頁面跳轉
windows 頁面跳轉相信學過winform編程的哥們都知道,先實例化該窗體然后show一下就可以了.eg:有兩個窗體Main和Login馒索,要想點擊Login 窗體上的注冊按鈕然后跳轉到Main上莹妒,則在Login窗體的Click事件里代碼如下:Main Mn=new Main();Mn.Show();
? ? ? ? private void btn1_Click(object sender, RoutedEventArgs e)
? ? ? ? {
? ? ? ? ? ? Login login1 = new Login();? //Login為窗口名,把要跳轉的新窗口實例化
? ? ? ? ? ? login1.Show();? //打開新窗口
? ? ? ? ? ? this.Close();? //關閉當前窗口
? ? ? ? }
2:Page頁面跳轉Page頁面跳轉:前臺跳轉和后臺跳轉都可以實現(xiàn)前臺實現(xiàn):
<TextBlockFontSize="24"TextWrapping="Wrap"Margin="0,0,0,0">
<Hyperlinkx:Name="LnkPre"NavigateUri="Page1.xaml"Foreground="Black">
Enter Page1
</Hyperlink>
</TextBlock>
后臺實現(xiàn):
NavigationService.GetNavigationService(this).Navigate(new Uri("Page1.xaml", UriKind.Relative));
NavigationService.GetNavigationService(this).GoForward();//向后轉
NavigationService.GetNavigationService(this).GoBack(); //向前轉
在后臺還可以這樣寫:this.content = new Page1();(這種比較簡單绰上,但是建議大家使用前一種更能提高自己旨怠,呵呵)
另外還可以以實現(xiàn)windows跳轉到page:
NavigationWindow window =new NavigationWindow();
window.Source =new Uri("Page1.xaml", UriKind.Relative);
window.Show();
***************************************************************
# 頁面跳轉中函數Show() 和ShowDialog()區(qū)別 #
參考網站:https://zhidao.baidu.com/question/54948499.html
面對多窗口的調用的時候,我們往往不喜歡窗口之間的隨意切換蜈块,那樣我們還有花費時間尋找我們要用的窗口鉴腻,而且,一但出現(xiàn)問題百揭,窗口的順序也有可能被再次打亂爽哎,很是不順手,那么我們怎么辦呢信峻?
我們可以將show方法轉化為showdialog方法倦青,顧名思義,showdialog是一個進行路經綁定的show方法盹舞,他是不可以自由切換的产镐,換言之,就是踢步,當你沒有關閉你當前頁的前提下癣亚,你是無法關閉該頁面后面的任一頁面的,它是當前唯一(路經打開)為true的获印。
而show方法由于未進行綁定述雾,它所顯示的各個窗口、對話框是可以相互切換兼丰,而不需要關閉當前窗口玻孟、對話框。但是他由于未進行綁定鳍征,所以每個由show方法打開的窗口的順序是非固定的黍翎,如果遇到什么問題,由show方法打開的窗口的順序可能會有很大的改變艳丛!
show()僅僅是顯示出來窗口界面而已```也就是和你執(zhí)行的結果在同一窗口顯示```所顯示的窗口可以在后臺運行```而showDialog()是一個對話框窗口界面```執(zhí)行結果以新窗口界面出現(xiàn)```不允許進行后臺運行```就是你想編輯什么的時候```非得先關閉showDialog()窗口界面才可以進行其他操作```
這就是它們的一點小區(qū)別了```
show()是非模式窗體.
showDialog()是模式窗體.
區(qū)別在于,以showDialog()打開的窗體,要等窗體關閉后才能操作其他窗體.而show()則不受此限制.
這是最經常的區(qū)別了匣掸,
還有一個我個人使用的心得趟紊,你可以了解
比如你先打開子窗體,想隱藏主窗體碰酝。
如果這個時候用Show的話霎匈,則會發(fā)生的事情是,打開子窗體的同時主窗體又顯示出來送爸,而使用ShowDialog()的時候主要當子窗體關閉的時候主窗體才會顯示铛嘱。
簡單代碼如下:
Form2 f2 = new Form2();
this.Visible = false;
f2.ShowDialog();
this.Visible= true;
這就是模態(tài)對話框的與Show的區(qū)別。
**********************************************************************
# 窗口之間傳值 #
參考網站:https://bbs.csdn.net/topics/390172282
可以改一下構造函數
public MainWindow(string value1,string value2)
{
? //...
}
調用:
MainWindow window=new MainWindow(傳值1,傳值2);
window.Show();
*************************************************************************