使用AvalonDock进行动态水平/垂直分割更改

我的界面上有两个区域(使用WPF),我希望将其拆分。 还有一个按钮可以在水平和垂直分割之间切换。 我正在使用AvalonDock。 当我在运行之前更改代码中的Orientation参数时,一切正常。

                

但是点击此处按钮不会改变。 没有任何事情发生,但是当我尝试拖动仍然存在的分离器时程序崩溃。

  private void OnChangeView(object sender, RoutedEventArgs e) { if (LayoutPanel1.Orientation == Orientation.Vertical) { LayoutPanel1.Orientation = Orientation.Horizontal; } else { LayoutPanel1.Orientation = Orientation.Vertical; } } 

我调试了它,属性本身也发生了变化。 不知道问题是什么……或者你知道一个更好的方法来实现它,但我可能也需要AvalonDock。

我没有看过AvalonDock,但如果你只需要一个可更改的GridSplitter,我建议如下:

                   

BoolConverter是IValueConverter的地方。 而背后的代码:

 private bool _layoutHorizontal = true; public bool LayoutHorizontal { get { return _layoutHorizontal; } set { _layoutHorizontal = value; NotifyPropertyChanged(); } }