【问题标题】:How to maximize main window in wpf如何在wpf中最大化主窗口
【发布时间】:2020-01-23 02:12:15
【问题描述】:

我正在开发有多个窗口都连接到主窗口的 WPF 应用程序。 WindowStyle 也设置为无,所以我没有最大化和最小化按钮,所以我希望能够在我关闭依赖窗口时返回主窗口。问题是当我关闭依赖窗口时,主窗口仍然最小化,我必须单击工具栏上的图标才能将其调出。我做错了什么?

这是进入依赖窗口的代码

private void ButtonVlasnici_Click(object sender, RoutedEventArgs e)
        {
            var win = new WinVlasnici();
            win.Show();
            WindowState = WindowState.Minimized;

        }

这是为了回到main:

private void ButtonNazad_Click(object sender, RoutedEventArgs e)
        {
            var win = new MainWindow();

            win.WindowState = WindowState.Maximized;
            Close();
        }

【问题讨论】:

    标签: c# wpf


    【解决方案1】:
    var win = new MainWindow();
    

    这是错误的。您不应该在子窗口关闭时创建新的MainWindow

    有几种方法可以解决这个问题。如果您使用的是 MVVM,您应该(而且我不能强调它),您可以使用您的对话处理程序组件来处理这种情况。一个例子是here

    如果你没有使用 MVVM,你可以通过 child 的构造函数将主窗口的引用传递给你的子窗口,然后在 child 的 close 事件中使用这个引用来最大化主窗口。像这样的:

    public class Child
      private Window _Main;
      public Child(Window main)
      {
        _Main = main;
      }
    
      private void ButtonNazad_Click(object sender, RoutedEventArgs e)
      {
        _Main.WindowState = WindowState.Maximized;
        Close();
      }
    }
    

    【讨论】:

    • 我必须补充一点,我是初学者,我只使用互联网上的免费教程,所以我想我做错了什么,因为我的 _Main 为空。
    • @StefanSakic:你在哪里创建Child 窗口?你将什么传递给它的构造函数?
    • @Downvoter:解释你认为这个答案有什么问题的评论总是有帮助的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多