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