C# 窗口手动最小化覆盖DataTrigger中的我的WindowsState设置器

C# 窗口手动最小化覆盖DataTrigger中的我的WindowsState设置器,c#,wpf,window,fullscreen,datatrigger,C#,Wpf,Window,Fullscreen,Datatrigger,因此,我已将DataTrigger绑定到我的ResourceDictionary中的TriggerButton IsChecked属性 按下按钮后,窗口将全屏显示 问题是,当我手动最小化窗口时,WPF在代码中设置了WindowsState以最小化,它覆盖了我的DataTrigger设置程序,所以我不能再全屏显示。在保留窗口最小化功能的同时,是否有任何方法防止WPF重写?您可以在代码中使用一个属性,而不是根据复选框的bool属性更新窗口状态 例如: public WindowState MainW

因此,我已将DataTrigger绑定到我的ResourceDictionary中的TriggerButton IsChecked属性

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


问题是,当我手动最小化窗口时,WPF在代码中设置了WindowsState以最小化,它覆盖了我的DataTrigger设置程序,所以我不能再全屏显示。在保留窗口最小化功能的同时,是否有任何方法防止WPF重写?

您可以在代码中使用一个属性,而不是根据复选框的bool属性更新窗口状态

例如:

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方法,但它应该可以完成您想要做的事情