Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何最大化wpf中的主窗口_C#_Wpf - Fatal编程技术网

C# 如何最大化wpf中的主窗口

C# 如何最大化wpf中的主窗口,c#,wpf,C#,Wpf,我正在开发WPF应用程序,它有多个窗口,所有窗口都连接到主窗口。另外,WindowsStyle设置为“无”,所以我没有“最大化”和“最小化”按钮,所以我希望在关闭相关窗口时能够返回主窗口。问题是当我关闭依赖窗口时,主窗口仍然最小化,我必须点击工具栏上的图标来打开它。我做错了什么 下面是转到依赖窗口的代码 private void ButtonVlasnici_Click(object sender, RoutedEventArgs e) { var win

我正在开发WPF应用程序,它有多个窗口,所有窗口都连接到主窗口。另外,WindowsStyle设置为“无”,所以我没有“最大化”和“最小化”按钮,所以我希望在关闭相关窗口时能够返回主窗口。问题是当我关闭依赖窗口时,主窗口仍然最小化,我必须点击工具栏上的图标来打开它。我做错了什么

下面是转到依赖窗口的代码

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();
        }
这是错误的。您不应该从子窗口的关闭位置创建新的
main窗口

有几种方法可以解决这个问题。如果您使用的是MVVM,您应该使用MVVM(我强调的太多了),那么您可以使用对话框处理程序组件来处理这种情况。有一个例子

如果不使用MVVM,可以通过子窗口的构造函数将主窗口的引用传递给子窗口,然后使用此引用在子窗口的关闭事件中最大化主窗口。大概是这样的:

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:你在哪里创建你的
子窗口
?你把什么传递给它的构造器?@Downvoter:一条解释你认为这个答案错在哪里的评论总是很有帮助的。
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();
  }
}