2012-03-23 80 views
6

當我點擊導航欄上的按鈕時,會打開一個新窗口。例如:更改WPF窗口的內容

private void btFinanzen_Click(object sender, RoutedEventArgs e) 
    { 
     Finanz mw = new Finanz(login); 
     mw.Show(); 

    } 

現在,我不想要顯示它在一個新的窗口。相反,我希望它在同一個窗口顯示。我試着用以下方法:

private void btFinanzen_Click(object sender, RoutedEventArgs e) 
    { 
     Finanz mw = new Finanz(login); 
     //mw.Show(); 
     this.Content = Finanz f; 

    } 

但它失敗了。 我應該說的是,現在我有很多不同的窗口,並希望它們全部顯示在一個窗口中 - 每次單擊一個不同的按鈕。 我該如何管理?

回答

6

你需要做的是爲可替換內容使用UserControl而不是Window。添加一個新的UserControl,用於您想要在此項目中顯示的每個可能的內容。內容到您的項目。將您之前在第二個窗口中的內容添加到相應的UserControl。之後,您可以簡單地在代碼中實例化新控件,並將其分配給主窗口的內容區域。

例如,您使用您以前的Finanz窗口的內容創建UserControl ctlFinanz。現在,您只需編寫:

this.Content = new ctlFinanz(login); 

這一切:-)

1

我有同樣的問題,並決定爲每個窗口創建一個單獨的用戶控件,將它們放在我的wpf中,並將除活動窗口之外的所有窗口的可見性設置爲摺疊。

0

對我來說,這聽起來像地方使用與網頁的框架。而不是製作大量的窗口,用一個框架製作一個窗口,然後將內容放入頁面中。然後,您只需每次按導航按鈕時將框架的內容更改爲不同的頁面。