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

时间:2011-06-24 09:48:10

标签: c# .net winforms layout

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

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

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

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

2 个答案:

答案 0 :(得分:19)

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

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

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

3, Control.Anchor 属性允许子控件根据窗体客户区的大小更改位置和大小。因此,您的控件始终是右边或底边的固定偏移。

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

答案 1 :(得分:3)

您可以将您的控件放入tableLayout,并将Dock属性设置为fill。