使Windows窗体可扩展的最佳方法

本文关键字:最佳 方法 可扩展的 窗体 Windows | 更新日期: 2023-09-27 18:24:19

使WinForms应用程序完全可扩展的最佳方法是什么,例如当Form调整大小时?

在WPF中,我会使用类似Viewbox和/或UniformGrid的东西,但在WinForms中不存在这样的东西。

有没有一种更简单(也许更快)的方法可以在调整控件大小后重新调整控件的大小,而不是通过计算它们的新大小/位置等来调整它们的大小。?

提前感谢

使Windows窗体可扩展的最佳方法

在Windows窗体中,每个控件都使用AnchorDock属性。

下面是一篇关于使用它们的文章:http://www.techrepublic.com/article/manage-winform-controls-using-the-anchor-and-dock-properties/

您还应该查看FlowLayoutPanelTableLayoutPanel

您可以根据需要使用anchordock

  • 锚点-控件绑定到的容器的边缘,并确定控件如何与其父控件一起调整大小
  • 停靠-哪些控件边框停靠到其父控件,并确定如何使用其父控件调整控件大小

进一步阅读:Dock and Anchor

查看几乎所有控件上的Anchor属性。这允许您将控件锁定到窗口的四个边界中的任何一个(或全部)。

一旦锚定了一个距离(例如TopRight),控件将始终尝试保持该距离,无论您如何调整窗口大小。

例如,您可以将Anchor设置为Bottom,并将Right设置为应该始终位于窗口右下角的按钮。应该始终从左到右填充窗口的文本框将使用LeftRight

类似的事情可以利用CCD_ 17来实现,但是,停靠的控件总是会根据其容器来尝试填充尽可能多的空间(有不同的策略可用,比如"从这里向上填充所有东西")。然而,根据您的用例,这可能会更难控制(我通常只在想要一个控件来填充整个窗口时使用它,例如TextBox)。

如果你需要更复杂的对齐,比如按某种比例缩放的宽度(例如30%),那么有几种不同的容器可用。