如何检查窗口是否最大化或返回到前台

时间:2016-02-15 13:14:10

标签: c# wpf

我正在开发一个wpf应用程序,我想处理windowStateChanged事件。 我这样做了

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

但每当我最小化窗口然后最大化它时,它就会达到这个(WindowState.Normal)状态。当我点击最小化按钮时,我只希望它达到这种状态。任何解决方案?

1 个答案:

答案 0 :(得分: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);
    }
}