【问题标题】:AvalonDock: Dynamically changing LayoutAnchorablePane's CanClose propertyAvalonDock:动态改变 LayoutAnchorablePane 的 CanClose 属性
【发布时间】:2021-03-29 20:02:11
【问题描述】:

在 AvalonDock 中,是否可以在运行时动态修改 LayoutAnchorablePaneCanClose 属性?我想阻止/锁定布局更改,除非用户特别希望这样做并打开它。

我尝试了以下方法:

  1. 绑定:无法绑定属性,因为它不是DependencyProperty,所以这样的东西不起作用:<dock:LayoutAnchorable CanClose="{Binding CanClose}">
  2. CanClose 属性:无法在代码隐藏中更改 LayoutAnchorablePaneCanClose 属性,因为该属性是只读的。

【问题讨论】:

    标签: wpf avalondock docking


    【解决方案1】:

    根据LayoutAnchorablePane的源码:

    #region CanClose
    
    public bool CanClose
    {
      get
      {
        return Children.All( a => a.CanClose );
      }
    }
    
    #endregion
    

    CanClose 属性取决于窗格的所有子级,因此更改LayoutAnchorablePaneCanClose 值的一种方法是将其所有子级的CanClose 属性设置为所需的值。下面是一个例子:

    ...
    foreach(var child in pane.Children)
    {
        child.CanClose = true; // or false.
    }
    ...
    

    【讨论】:

      猜你喜欢
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 2016-01-24
      • 2013-10-16
      • 1970-01-01
      • 2016-02-15
      • 1970-01-01
      • 2015-10-05
      相关资源
      最近更新 更多