【问题标题】:AvalonDock: Dynamically changing LayoutAnchorablePane's CanClose propertyAvalonDock:动态改变 LayoutAnchorablePane 的 CanClose 属性
【发布时间】:2021-03-29 20:02:11
【问题描述】:
在 AvalonDock 中,是否可以在运行时动态修改 LayoutAnchorablePane 的 CanClose 属性?我想阻止/锁定布局更改,除非用户特别希望这样做并打开它。
我尝试了以下方法:
- 绑定:无法绑定属性,因为它不是
DependencyProperty,所以这样的东西不起作用:<dock:LayoutAnchorable CanClose="{Binding CanClose}">
-
CanClose 属性:无法在代码隐藏中更改 LayoutAnchorablePane 的 CanClose 属性,因为该属性是只读的。
【问题讨论】:
标签:
wpf
avalondock
docking
【解决方案1】:
根据LayoutAnchorablePane的源码:
#region CanClose
public bool CanClose
{
get
{
return Children.All( a => a.CanClose );
}
}
#endregion
CanClose 属性取决于窗格的所有子级,因此更改LayoutAnchorablePane 的CanClose 值的一种方法是将其所有子级的CanClose 属性设置为所需的值。下面是一个例子:
...
foreach(var child in pane.Children)
{
child.CanClose = true; // or false.
}
...