Восстановленное окно WPF - PullRequest
       1

Восстановленное окно WPF

0 голосов
/ 28 сентября 2018

У меня есть возможность, чтобы мое главное окно было свернуто.Для окна установлено значение SizeToContent = "WidthAndHeight".когда я нажимаю, чтобы восстановить окно, оно открывается больше, чем начальное значение WidthAndHeight.Я использую следующее в MainWindow.xaml.cs

   private void WindowStart()
    {
        if (LocalSystem.StartMinimized)
        {
            WindowState = WindowState.Minimized;
            ShowInTaskbar = true;
        }
        if (LocalSystem.StartOnTop)
        {
            Topmost = true;
        }
        Activate();
    }

1 Ответ

0 голосов
/ 29 сентября 2018

Рассмотрите возможность отслеживания изменений состояния вашего окна WPF.Добавьте обработчик события StateChanged вашего окна и следите за шириной и высотой окна.

Вы можете отслеживать размер окна следующим образом:

public MainWindow() {

 InitializeComponent();
  _lastState = this.WindowState;
  _initialWidth = this.ActualWidth;
  _initialHeight = this.ActualHeight;
   this.StateChanged += Window_StateChanged;
}


    WindowState _lastState;
    double _initialwidth, _initialHeight;

    private void Window_StateChanged(object sender, EventArgs e)
    {
        if (this.WindowState != _lastState)
        {
          if (_lastState == WindowState.Minimized && this.WindowState == WindowState.Maximized){
            this.Width = _initialWidth;
            this.Height = _initialHeight;

           }
           _lastState = this.WindowState;

        }
    }

Примечаниеиспользование ActualHeight и ActualWidth.Фактические размеры окна будут известны после запуска InitializeComponent внутри его конструктора.Восстановленное или не минимизированное, как вы красноречиво выразились, окно - это окно, в котором состояние переходит от WindowState.Minimized к WindowState.Maximized.

Обратите внимание, что мы стараемся минимизировать объем кода в приложениях WPF, так как рекомендуется использовать MVVM.Однако вы можете подумать о создании класса поведения WPF для восстановления начального размера Window, в конце концов, это общее поведение.

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