2014-02-11 67 views
4

我試圖設置一個按鈕的點擊事件打開另一個窗口,但我得到的錯誤是NavigationService是該項目不包含它的定義。如何在WPF中的窗口之間導航?

這是我怎樣,我想目前調用頁面:

private void conditioningBtn_Click(object sender, RoutedEventArgs e) 
{ 
    this.NavigationService.Navigate(new Uri("TrainingFrm.xaml", UriKind.RelativeOrAbsolute)); 
} 

有人能指出我在正確的方向與該節目或替代該方法窗口導航?

回答

8

NavigationService用於WPF中的瀏覽器導航。你試圖做的是改變到不同的窗口TrainingFrm

要進入不同的窗口,你應該這樣做:

private void conditioningBtn_Click(object sender, RoutedEventArgs e) 
{ 
    var newForm = new TrainingFrm(); //create your new form. 
    newForm.Show(); //show the new form. 
    this.Close(); //only if you want to close the current form. 
} 

如果,另一方面,你希望你的WPF應用程序的行爲就像一個瀏覽器,那麼你就需要創建Page!而非的表單,然後在您的應用程序中使用Frame進行導航。見this example

+0

工作反正謝謝:)我剛剛拿到一本關於WPF的書,所以希望我能更好地理解它。 –

3

爲了使用的NavigationService你應該使用的頁面,而不是Window類

2

如果你要離開窗口到窗口:

private void conditioningBtn_Click(object sender, RoutedEventArgs e) 
{ 
    Window1 window1 = new Window1(); 
    // window1.Show(); // Win10 tablet in tablet mode, use this, when sub Window is closed, the main window will be covered by the Start menu. 
    window.ShowDialog(); 
    } 

如果你要離開窗口到頁面:

private void conditioningBtn_Click(object sender, RoutedEventArgs e) 
{ 
    NavigationWindow window = new NavigationWindow(); 
    window.Source = new Uri("Page1.xaml", UriKind.Relative); 
    window.Show(); 
}