WPF控件的动态布局取决于某些条件

pin*_*ius 4 c# wpf layout

我正在使用WPF,我的布局有问题.我有一个停靠面板(非WPF,我刚刚托管我的控件).当用户希望将此面板停靠在屏幕的左侧或右侧时,我需要以一种方式布置我的控件.但是当用户希望将此面板停靠在顶部或底部时,我需要以另一种方式布置我的控件.

我的问题是实现WPF控件动态布局的最佳方法是什么,这取决于某些条件?

我明白,我可以使用网格并动态更改网格内控件的位置.但我对这个解决方案并不满意.我正在寻找一个没有代码干预的解决方案,仅限xaml.如果这是不可能的,至少涉及对代码的最小干预.

提前致谢.

Lou*_*ann 5

您可以使用AvalonDock来获得与视觉工作室非常相似的对接系统.
这将使您的用户完全控制他们想要的布局,并且实现起来并不难.

但是如果你真的想要一个快速的方法来做到这一点,我建议将DockPanel.Dock属性绑定到一个ViewModel值,该值随用户输入而变化(IValueConverter如果需要的话还会改变).