当我点击导航栏上的按钮时,会打开一个新窗口。例如:
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;
}
但失败了。 我应该说的是,我现在有很多不同的窗口,希望它们全部显示在一个窗口 - 每个窗口都可以点击一个不同的按钮。 我该如何管理?
答案 0 :(得分:6)
您需要做的是为您的可替换内容使用UserControl而不是Window。为要在此项目中显示的每个可能内容添加一个新的UserControl。将先前在第二个窗口中的内容添加到相应的UserControl。之后,您只需在代码中实例化新控件并将其分配给主窗口的内容区域。
例如,您使用以前的Finanz窗口的内容创建UserControl ctlFinanz。现在你只需写:
this.Content = new ctlFinanz(login);
全部: - )
答案 1 :(得分:1)
我遇到了同样的问题,决定为每个窗口创建一个单独的usercontrol,将它们放在我的wpf中,并将除活动窗口之外的所有窗口的可见性设置为Collapsed。
答案 2 :(得分:0)
对我而言,这听起来像使用带有页面的框架的地方。不要制作大量的窗口,而是制作一个带框架的窗口,然后将内容放入页面中。然后,您需要做的就是每次按导航按钮时将框架的.Content更改为其他页面。
答案 3 :(得分:0)
使用我在窗口构造函数中设置的UserControl
创建主要内容。然后根据您的需要,与其他UserControl
一起更改内容。
MainWindow构造函数:
this.Content = new UserControlMainContent();
在UserControlMainContent
中,当我通过示例单击按钮时:
Window window = Window.GetWindow(this); // Get the main window
window.Content = new OtherUserControlContent();