窗口手动最小化覆盖我在数据触发器中的窗口状态设置器



所以我在我的资源字典中将 DataTrigger 绑定到 TriggerButton IsChecked 属性。

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

问题是,当我手动最小化窗口时,WPF 在代码中设置了 WindowState 以最小化,它会覆盖我的 DataTrigger 资源库,所以我无法再次全屏。有没有办法防止 WPF 重写,同时保留窗口最小化功能?

您可以在代码隐藏中使用一个属性,该属性基于复选框的布尔属性更新 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 方法,但它应该完成您正在尝试做的事情。

最新更新