使Windows窗体可扩展的最佳方法是什么?

时间:2013-07-23 11:14:38

标签: c# winforms

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

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

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

提前致谢

3 个答案:

答案 0 :(得分:5)

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

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

您还应该查看FlowLayoutPanelTableLayoutPanel

答案 1 :(得分:2)

您可以根据需要使用anchordock

  • 锚点 - 绑定控件的容器边缘,并确定如何使用其父控件调整控件的大小。
  • Dock - 哪些控件边框停靠在其父控件上,并确定如何使用其父控件调整控件的大小。

进一步阅读:DockAnchor

答案 2 :(得分:2)

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

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

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

使用Dock可以实现类似的功能,但是停靠控件将始终尝试填充尽可能多的空间(可以使用不同的策略,例如“从此处向上填充所有内容”)基于其容器。根据您的使用情况,这可能会更难控制(我通常只在我想要一个控件来填充整个窗口时使用它,例如TextBox)。

如果您需要更复杂的对齐方式,例如按某种比例缩放的宽度(例如30%),则可以使用多个不同的容器。