窗口手动最小化覆盖DataTrigger中的WindowState setter

时间:2017-08-16 20:33:50

标签: c# wpf window fullscreen datatrigger

所以我在ResourceDictionary中将DataTrigger绑定到TriggerButton IsChecked属性。

按下按钮后,窗口全屏显示。

问题是,当我手动最小化窗口时,WPF会在代码中设置WindowState以最小化并覆盖我的DataTrigger设置器,因此我无法再次全屏显示。有没有办法阻止WPF覆盖,同时保留窗口最小化的功能?

1 个答案:

答案 0 :(得分:0)

您可以在后面的代码中使用属性,而不是根据复选框的bool属性更新WindowState。

示例:

public WindowState MainWindowState 
{ 
    get 
    {
        return (IsChecked) ? WindowState.Maximized : WindowState.Normal;
    }
}

private bool _isChecked;
public bool IsChecked
{
    get
    {
        return _isChecked;
    }
    set
    {
        _isChecked = value;
        OnPropertyChanged("IsChecked");
        OnPropertyCHanged("MainWindowState");
    }
}

这不是一个伟大的MVVM方法,但它应该完成你想要做的事情。