Изменение размера нового окна до предыдущего размера окна в wpf - PullRequest
0 голосов
/ 23 мая 2019

У меня есть кнопка входа в мое первое окно, которое при нажатии открывает новое окно.Если мое первое окно свернуто и нажата кнопка входа, открывается новое окно в максимальном размере.Я хочу, чтобы новое окно открывалось в предыдущем размере окна входа в систему (минимизированный размер).Как это сделать в wpf

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

если вы называете свое окно входа в систему с помощью его атрибута Uid, вы можете использовать его, чтобы найти окно в коллекции App.Current.Windows, затем вы можете зафиксировать его ширину и высоту и применить настройки при открытии нового окна

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;

вы можете установить Uid в файле xaml для вашего окна:

 <UserControl Uid="Login">

или, в зависимости от того, как вы создаете окно, вы можете установить его во время создания:

secondWindowsViewModel.Uid = "Login";
0 голосов
/ 23 мая 2019

Попробуйте использовать свойства Width и Height класса Window, чтобы получить размер предыдущего окна непосредственно перед его закрытием. А затем примените его к вашему новому окну.

Имейте в виду, что ваш вопрос не очень подробный, поэтому я мог что-то неправильно понять, и решение может отличаться, если вы используете страницы, например.

Некоторый код: в 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;
    }
}

Надеюсь, это должно сделать то, что вы хотите достичь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...