我有一个全屏运行的 Windows 应用程序,并且我的表单中有一些面板,我希望它们在宽度上伸展,我的意思是如何将宽度 = 100% 添加到这些面板?
如下图所示,右侧面板是我的内部面板(容器面板),应该可以拉伸,它包含许多项目:2 个面板、工具条和一个网格。我只是将 Doc="Fill" 和 Anchor="top; right; left; bottom" 设置为它,但没有任何改变。
我有一个全屏运行的 Windows 应用程序,并且我的表单中有一些面板,我希望它们在宽度上伸展,我的意思是如何将宽度 = 100% 添加到这些面板?
如下图所示,右侧面板是我的内部面板(容器面板),应该可以拉伸,它包含许多项目:2 个面板、工具条和一个网格。我只是将 Doc="Fill" 和 Anchor="top; right; left; bottom" 设置为它,但没有任何改变。
要使面板伸展到整个表单,请更改Anchor
面板控件的属性并将其设置为所有四个。调整控件的大小以拉伸到整个窗体。
panel1.Anchor = AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom | AnchorStyles.Left;
其次用于制作全屏表单:
this.WindowState = FormWindowState.Maximized;
this.FormBorderStyle = FormBorderStyle.None;
在 Windows 窗体中,有两种方法可以使用窗体制作控件大小:Dock
和Anchor
属性:
停靠为您提供了一种在表单边缘设置控件和中心控件的方法。Anchor
允许您声明控件与给定的一组边之间的距离应始终相同。如果您同时启用左边缘和右边缘,那么它将随着表单调整大小而调整宽度。
锚让我很头疼。在 WinForms 中,我更喜欢使用 TableLayoutPanel 进行流畅的布局。
只需将 TableLayoutPanel 的 Dock 设置为 Fill,您就可以使用绝对或相对大小指定行和列。然后只需将控件添加到表格的正确单元格并将其 Dock 设置为 Fill。
来自 WPF,这类似于使用 Grid 并指定行和列定义。您还可以将 TableLayoutPanels 放在其他 TableLayoutPanels 中。