什么是使WinForms应用程序完全可扩展的最佳方法,例如在Form调整大小时?
在WPF中我会使用Viewbox
和/或UniformGrid
之类的东西,但WinForms中不存在这样的东西。
是否有一种更简单(也许更快)的方法可以在调整大小后重新调整控件的大小,而不是通过计算新的大小/位置等来调整它们的大小。?
提前致谢
答案 0 :(得分:5)
在Windows窗体中,您为每个控件使用Anchor
和Dock
属性。
以下是关于使用它们的文章:http://www.techrepublic.com/article/manage-winform-controls-using-the-anchor-and-dock-properties/
答案 1 :(得分:2)
您可以根据需要使用anchor
和dock
:
答案 2 :(得分:2)
查看几乎所有控件上的Anchor
属性。这允许您将控件锁定到窗口的四个边框中的任何(或全部)。
一旦某个距离被锚定(例如Top
或Right
),无论您如何调整窗口大小,控件都会始终尝试保持该距离。
例如,您将Anchor
设置为Bottom
,Right
设置一个应该始终位于窗口右下角的按钮。应始终从左到右填充窗口的文本框将使用Left
和Right
。
使用Dock
可以实现类似的功能,但是停靠控件将始终尝试填充尽可能多的空间(可以使用不同的策略,例如“从此处向上填充所有内容”)基于其容器。根据您的使用情况,这可能会更难控制(我通常只在我想要一个控件来填充整个窗口时使用它,例如TextBox
)。
如果您需要更复杂的对齐方式,例如按某种比例缩放的宽度(例如30%),则可以使用多个不同的容器。