使Windows窗体可扩展的最佳方法
本文关键字:最佳 方法 可扩展的 窗体 Windows | 更新日期: 2023-09-27 18:24:19
使WinForms应用程序完全可扩展的最佳方法是什么,例如当Form调整大小时?
在WPF中,我会使用类似Viewbox
和/或UniformGrid
的东西,但在WinForms中不存在这样的东西。
有没有一种更简单(也许更快)的方法可以在调整控件大小后重新调整控件的大小,而不是通过计算它们的新大小/位置等来调整它们的大小。?
提前感谢
在Windows窗体中,每个控件都使用Anchor
和Dock
属性。
下面是一篇关于使用它们的文章:http://www.techrepublic.com/article/manage-winform-controls-using-the-anchor-and-dock-properties/
您还应该查看FlowLayoutPanel
和TableLayoutPanel
您可以根据需要使用anchor
和dock
:
- 锚点-控件绑定到的容器的边缘,并确定控件如何与其父控件一起调整大小
- 停靠-哪些控件边框停靠到其父控件,并确定如何使用其父控件调整控件大小
进一步阅读:Dock and Anchor
查看几乎所有控件上的Anchor
属性。这允许您将控件锁定到窗口的四个边界中的任何一个(或全部)。
一旦锚定了一个距离(例如Top
或Right
),控件将始终尝试保持该距离,无论您如何调整窗口大小。
例如,您可以将Anchor
设置为Bottom
,并将Right
设置为应该始终位于窗口右下角的按钮。应该始终从左到右填充窗口的文本框将使用Left
和Right
。
类似的事情可以利用CCD_ 17来实现,但是,停靠的控件总是会根据其容器来尝试填充尽可能多的空间(有不同的策略可用,比如"从这里向上填充所有东西")。然而,根据您的用例,这可能会更难控制(我通常只在想要一个控件来填充整个窗口时使用它,例如TextBox
)。
如果你需要更复杂的对齐,比如按某种比例缩放的宽度(例如30%),那么有几种不同的容器可用。