4

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

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

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

提前致谢

4

3 回答 3

5

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

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

您还应该查看FlowLayoutPanelTableLayoutPanel

于 2013-07-23T11:18:38.393 回答
2

您可以使用anchorand dock,具体取决于您的需要:

  • Anchor - 控件绑定到的容器的边缘,并确定控件如何与其父级一起调整大小。
  • Dock - 哪些控件边框停靠到其父控件,并确定控件如何与其父控件一起调整大小。

进一步阅读:Dock and Anchor

于 2013-07-23T11:18:26.923 回答
2

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

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

例如,您将设置AnchorBottomand Rightfor 一个按钮,该按钮应该始终位于窗口的右下角。应该始终从左到右填充窗口的文本框将使用Leftand Right

使用 可以实现类似的事情Dock,但是停靠控件将始终尝试根据其容器填充尽可能多的空间(有不同的可用策略,例如“从这里和向上填充所有内容)。根据您的用例,这可以但是要控制起来要困难得多(而且我通常只在我想要一个控件来填充整个窗口时才使用它,例如 a TextBox)。

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

于 2013-07-23T11:18:32.747 回答