2016-02-15 4 views
-1

Я работаю над приложением wpf, и я хочу обработать событие windowStateChanged. Я сделал это, как этотКак проверить, что окно максимально или вернулось на передний план

if (((Window)sender).WindowState == WindowState.Maximized) 
{} 
else if (((Window)sender).WindowState == WindowState.Normal) 
{} 

, но всякий раз, когда я минимизировать окно, а затем увеличить его, он пришел к этому (WindowState.Normal) состояние. Я только хочу, чтобы он пришел к этому условию, когда я нажимаю кнопку «Свернуть». Любое решение?

+2

Возможный дубликат [Как вызвать событие, связанное с максимизируют в C#] (HTTP://stackoverflow.com/questions/5885025/how-to-trigger-the-event-associated-with-maximize-in-c-sharp) – MethodMan

+0

этот вопрос задан раньше, если вы выполните простой поиск в Google, вы найдете пример не говоря уже о многих других – MethodMan

ответ

0

Ваш MainWindow класс может переопределить метод OnPropertyChanged для доступа к предыдущей и текущей стоимости WindowState имущества:

protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e) 
{ 
    base.OnPropertyChanged(e); 

    if (e.Property == Window.WindowStateProperty) 
    { 
     var oldState = (WindowState)e.OldValue; 
     var newState = (WindowState)e.NewValue; 

     Debug.WriteLine("{0} -> {1}", oldState, newState); 
    } 
} 
Смежные вопросы