繁体   English   中英

更改 WPF 窗口的内容

[英]Change content of WPF Window

当我单击导航栏上的按钮时,会打开一个新窗口。 例如:

    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;

    }

但它失败了。 我应该说的是,我现在有许多不同的窗口,并希望它们都显示在一个窗口中 - 每个窗口都通过单击不同的按钮。 我该如何管理?

您需要做的是为可替换内容使用 UserControl 而不是 Window。 为您希望在 this.Content 中显示的每个可能的内容添加一个新的 UserControl 到您的项目。 将您之前在第二个窗口中的内容添加到相应的 UserControl。 之后,您可以简单地在代码中实例化新控件并将其分配给主窗口的内容区域。

例如,您使用之前的 Finanz 窗口的内容创建一个 UserControl ctlFinanz。 现在你只需写:

this.Content = new ctlFinanz(login);

就这样 :-)

我遇到了同样的问题,并决定为每个窗口创建一个单独的用户控件,将它们放在我的 wpf 中,并将除活动窗口之外的所有窗口的可见性设置为折叠。

使用我在窗口构造函数中设置的UserControl创建一个主要内容。 然后我根据您的需要更改其他UserControl的内容。

主窗口构造函数:

this.Content = new UserControlMainContent();

UserControlMainContent ,当我通过示例单击按钮时:

Window window = Window.GetWindow(this); // Get the main window
window.Content = new OtherUserControlContent();

对我来说,这听起来像是在页面中使用框架的地方。 与其制作很多窗口,不如制作一个带有框架的窗口,然后将内容放入页面中。 然后您所要做的就是每次按下导航按钮时将框架的 .Content 更改为不同的页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM