C#基础学习之——(一)Dock与Anchor

2022-10-03 14:25:09 浏览数 (2)

大家好,又见面了,我是你们的朋友全栈君。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、Dock与Anchor是什么?
    • 1.Dock
    • 2.Anchor
  • 二、使用步骤
    • 1.设计界面
    • 2.使用Anchor与Dock
  • 总结

前言

C#基础学习之——(一)Dock与Anchor 最近在对窗体控件进行布局时,发现了Dock与Anchor这两种不同的窗体布局属性,所以查阅了一些资料,在这里进行记录。


提示:以下是本篇文章正文内容,下面案例可供参考

一、Dock与Anchor是什么?

1.Dock

①Dock在英文中是停泊的意思,表示控件的某个边与窗体重合(零距离)。控件的变化则在设计的时候就能呈现。此外控件的DocK循序会影像到结果。 ②Dock有Bottom,Fill,Left,None,Right,Top六种DockStyle类型。其中Bottom意为该控件的下边缘停靠在其包含控件的底部,Fill意为该控件的各个边缘分别停靠在其包含控件的各个边缘,Left意为该控件的左边缘停靠在其包含控件的左边缘,Right意为该控件的右边缘停靠在其包含控件的右边缘,Top意为该控件的上边缘停靠在包含控件的顶端,None意为该控件未停靠。

2.Anchor

①Anchor在英文中是锚定的意思,表示在窗体重置时控件与窗体(或者父控件)的相对位置保持不变。控件变化要等到窗体重置的时候才能呈现。 ②当控件放置于窗体时,默认的anchor设置是“顶部、左边”,这使得控件和窗体的顶边和左边缘固定相关。

二、使用步骤

1.设计界面

我是先自己画了一个用户控件,分别有一个pictureBox,两个listView和一个splitContainer共四个控件,其中两个listView控件和一个splitContainer控件放置在groupBox中

2.使用Anchor与Dock

然后新建一个窗体并加载之前画好的用户控件

窗体设计尺寸小了,用户控件最右边有一部分没有显示完全,于是我改变窗体尺寸,得到

窗体时放大了,可是设计的用户控件并没有随着窗体的放大而进行改变。 这时候就用到了Dock与Anchor属性了,我先将pictureBox与splitContainer两个控件打包在一个panel里面(将pictureBox的Dock属性设置为Top确保其与panel上边缘绑定在一起,将splitContainer的Dock属性设置为Bottom确保其与panel的底部绑定在一起),对于这个panel的Dock属性就不设置了,只默认其Anchor属性为Top,left,这样当加载用户控件时,这个Panel的大小是按用户控件的设计大小进行加载的不会随着窗体的大小的改变而改变。然后我将两个listView的Dock属性设置为Fill,确保他们能随着各自的groupBox的大小进行变化,再将日志栏groupBox的Anchor属性设置为Top,Left,Right,确保日志栏的顶部跟右边能够随窗体的变化而变化(在这里Anchor属性设置包含Left后,应该是按照panel控件的右边缘位置设置自身的左边缘,与设计时的相对位置保持不变),将点位实时数据groupBox的Anchor属性设置为Top,Left,Right,Bottom,确保其底部,左边,右边随主窗体底部位置变化而变化,(由于pannel的Anchor属性默认为Top,Left,则其Bottom和Right是不会随着窗体的变化而变化,故日志栏groupBox的左边缘与点位实时数据groupBox的顶部与这个panel的底部跟右边缘的相对位置不变)。 设计完之后,估计加大主窗体的尺寸,看各控件如何变化: 设计界面:

窗体显示:

总结

以上就是今天要讲的内容,本文仅仅简单介绍了Anchor与Dock的简单使用,后续会继续探索的!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/197421.html原文链接:https://javaforall.cn

0 人点赞