【问题标题】:Window manual minimize override my WindowState setter in DataTrigger窗口手动最小化覆盖我在 DataTrigger 中的 WindowState 设置器
【发布时间】:2017-08-16 20:33:50
【问题描述】:
所以我已将 DataTrigger 绑定到 ResourceDictionary 中的 TriggerButton IsChecked 属性。
按下按钮后,窗口进入全屏状态。
问题是,当我手动最小化窗口时,WPF 在代码中将 WindowState 设置为最小化,它会覆盖我的 DataTrigger 设置器,所以我不能再次全屏显示。有什么办法可以防止 WPF 被覆盖,同时保留窗口最小化的功能?
【问题讨论】:
标签:
c#
wpf
window
fullscreen
datatrigger
【解决方案1】:
您可以在后面的代码中使用一个属性,而不是根据复选框的布尔属性更新 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 方法,但它应该可以完成您想要做的事情。