【问题标题】: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 方法,但它应该可以完成您想要做的事情。

    【讨论】:

      猜你喜欢
      • 2011-01-24
      • 1970-01-01
      • 2020-07-13
      • 1970-01-01
      • 2018-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多