我在第一个窗口中有一个登录按钮,单击该按钮会打开一个新窗口。如果最小化我的第一个窗口并单击“登录”按钮,则新窗口将以最大尺寸打开。我希望新窗口以以前的登录窗口大小(最小化)打开。如何在WPF中做到这一点
答案 0 :(得分:0)
尝试在关闭窗口之前使用Window类的属性Width
和Height
获取前一个窗口的大小。然后将其应用于新窗口。
请记住,您的问题不是很详细,所以我可能会误解了某些内容,如果您使用的是例如页面,则解决方案可能会有所不同。
某些代码:在 Window1.xaml.cs
中public partial class Window1: Window
{
public static double HeightWindow ;
public static double WidthtWindow;
public Window1()
{
InitializeComponent();
}
public void closing()
{
HeightWindow = this.Height;
WidthWindow = this.Width;
}
}
在任何方法中都可以使用它来获取窗口的高度和宽度。 我知道这不是很详细,但这只是一个开始。 之后,您需要将变量传递到下一个窗口(我在这里使用静态变量,但我认为还有其他方法)并按如下所示进行设置: Window2.xaml.cs
public partial class Window2: Window
{
public Window2()
{
InitializeComponent();
this.Height = Window1.HeightWindow ;
this.Width = Window1.WidthWindow;
}
}
希望这应该可以实现您想要的目标。
答案 1 :(得分:0)
如果通过其Uid属性命名登录窗口,则可以使用它在App.Current.Windows集合中找到该窗口,然后可以捕获其宽度和高度并在打开新窗口时应用设置< / p>
foreach (Window window in App.Current.Windows)
{
if (window.Uid == your_login_window_uid)
{
requiredHeight = window.Height;
requiredWidth = window.Width;
}
}
secondWindowsViewModel.Width = requiredWidth;
secondWindowsViewModel.Height = requiredHeight;
您可以在xaml文件中为您的窗口设置Uid:
<UserControl Uid="Login">
或根据创建窗口的方式,可以在创建过程中进行设置:
secondWindowsViewModel.Uid = "Login";