2012-03-23 102 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

对我来说,这听起来像地方使用与网页的框架。而不是制作大量的窗口,用一个框架制作一个窗口,然后将内容放入页面中。然后,您只需每次按导航按钮时将框架的内容更改为不同的页面。