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

4
我正在使用WPF,并且在布局方面遇到了问题。我有一个停靠的面板(非WPF,我只是在里面托管了我的控件)。当用户希望将此面板停靠在屏幕左侧或右侧时,我需要以一种方式布置我的控件。但是当用户希望将这个面板停靠在顶部或底部时,我需要用另一种方式布置我的控件。
我的问题是,实现WPF控件的动态布局的最佳方法是什么,这取决于某些条件?
我知道我可以使用网格,并动态更改网格中控件的位置。但是我对这个解决方案并不满意。我正在寻找一种无需代码干预,只需XAML的解决方案。如果这是不可能的,那么至少要尽量减少代码干预。
提前致谢。
3个回答

5
您可以使用AvalonDock来获得类似于Visual Studio的停靠系统。
这将使您的用户完全控制他们所需的布局,并且实现起来并不太困难。
但是,如果您真的想快速完成此操作,我建议将DockPanel.Dock属性绑定到ViewModel值,该值会随着用户输入而更改(如有必要,还可使用IValueConverter)。

我同意这个。AvalonDock 可以给你想要的东西。还有 Infragistics、Telerik 控件。 - WPF-it
谢谢您的回答。我已经在使用本地的Visual Studio停靠面板,我正在开发一个Visual Studio包 :) DockPanel.Dock的绑定是一个好的和简单的解决方案,非常感谢! - pingvinius

3

谢谢你的回答。这是一个很好的解决方案,可以解决控件布局的困难差异!非常感谢! - pingvinius
1
抱歉,stackoverflow.com不支持同时发布两个答案,但是您的答案也是一个好的解决方案! :) - pingvinius

1
使用Storyboard并更改控件的变换。

谢谢你的回答。我认为这个解决方案难以维护,需要比其他解决方案更多的实现时间。 - pingvinius

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接