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