THE*_*TOR 12 c# windows user-interface resize winforms
我如何在C#/ WinForms中设计一个UI,它恰好包含几种不同的控件类型,以便在用户调整窗口大小时只调整ListView控件的大小?
Sim*_*bee 24
根据父容器的大小更改(在您的情况下为Form),有两种主要方法可以使控件自动调整大小:
此方法的优点是它接受整个控件并告诉它始终填充父容器的整个客户区(在您的情况下,表单客户区).如果您想要使用ListControl或TreeView或类似的东西填充Form,那么这很有用.但是如果你想在使用其他控件的同时缩放单个控件(如你所指示的那样),它就不那么有用了.在这种情况下,您需要将其他控件上的Dock属性设置为DockStyle.Top或DockStyle.Bottom,以使它们浮动到主调整大小控件的上方或下方.
这是一个麻烦,它也限制了其他控件的布局选项.您可以通过停靠两个Panel控件来缓解该问题,一个位于顶部,另一个位于窗体底部.这些面板将保持固定位置,而中间区域(使用DockStyle.Fill控件)与父窗体缩放.然后,您可以在任何布局配置中将任何控件放在那些"页眉"和"页脚"面板中.
这种采用对接面板的复合造型非常强大.坦率地说,当他们用.NET 1.0 WinForms引入它时,它在.NET中发生了变化.
如果你想要做的只是在表单规模上有一个控件,而其他人保持"卡住"边缘,使用Anchor属性.对于要保留在顶部的控件,将Anchor属性设置为"Top,Left"(默认值).对于要保留在底部的控件,将Anchor属性设置为"Bottom,Left".对于要使用窗体/对话框(例如单行文本框控件)增加宽度的控件,将Anchor属性设置为"Left,Right"(并根据您是否希望它作为顶部移动设置Top或Bottom)或者对话框的底部发生变化.
如果您希望控件使用Form在所有方向上调整大小,请将Anchor属性设置为"Top,Left,Bottom,Right".对于"主要控件"类型的事物非常有用,例如显性列表框,树控件或多行文本框.
根据您的需要,不要乱用AutoSize或AutoSizeMode ......这些属性控制控件如何根据自己的内容更改大小,而不是根据容器的行为调整大小.将AutoSize/AutoSize模式视为向内看,而Anchor/Dock则向外看.如果同时使用两种大小调整方法,则会出现一些非常奇怪的行为.一般没用.
归档时间: |
|
查看次数: |
11036 次 |
最近记录: |