Windows窗体应用程序中的Dock,Anchor和Fluid布局

ben*_*ndr 12 .net c# layout winforms

所以,我被要求重新设计几年前我写的旧应用程序.

基本上,没有什么需要改变,除了客户希望它更流畅,它必须是全屏(没有可见的"窗口")即没有Titlebar,只是一个无边框全屏窗口.

什么是确保一切都保持流畅的最佳方法,我的意思是我们如何确保一切都出现在它应该的位置,因为你知道,不同的分辨率,显示器尺寸等?

这在网页/ CSS中很容易,但这不是我以前做过的.大多数控件将在运行时以编程方式创建,具体取决于执行的操作等.我将如何完成这样的布局?基本上我希望能够全屏显示,不知道他们的显示器有多大,或者他们使用的是什么分辨率.

Phi*_*ght 19

在使用流体布局设计表单时,您肯定是正确的,该布局可以响应表单字体的可用空间和大小.为此,您需要使用以下控件和控件属性.

1,TableLayoutPanel将一个区域拆分为一组行和列,并允许您将子控件放置在该表布局的各个单元格中.这会响应形状宽度和高度的变化.

2,FlowLayoutPanel将从左到右定位子控件,并在空间不足时自动移动到新行.这对于流体设计非常有用,因为它会根据可用空间调整布局.

3,Control.Anchor属性允许子控件根据表单客户区的大小改变位置和大小.因此,您可以使控件始终与右边缘或底边缘成固定偏移.

4,Control.Dock属性将子控件放在边缘上,相反的大小将由包含的表单自动定义.

  • 诀窍在于如何巧妙地结合功能并使用面板嵌套。例如,使用一个停靠在左侧的面板和另一个停靠为“完整”的面板。这样做的效果是左侧部分不会变宽,但右侧部分会变宽。对于复杂表单来说,这是一个巧妙的解决方案,其中许多控件位于左侧的固定布局中,右侧有多个可增长的网格或预览窗格。 (2认同)