在wpf中将新窗口的大小调整为先前的窗口大小

时间:2019-05-23 10:36:08

标签: c# wpf

我在第一个窗口中有一个登录按钮,单击该按钮会打开一个新窗口。如果最小化我的第一个窗口并单击“登录”按钮,则新窗口将以最大尺寸打开。我希望新窗口以以前的登录窗口大小(最小化)打开。如何在WPF中做到这一点

2 个答案:

答案 0 :(得分:0)

尝试在关闭窗口之前使用Window类的属性WidthHeight获取前一个窗口的大小。然后将其应用于新窗口。

请记住,您的问题不是很详细,所以我可能会误解了某些内容,如果您使用的是例如页面,则解决方案可能会有所不同。

某些代码:在 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";