WPF中的布局元素

    xiaoxiao2025-06-22  12

    WPF的页面布局,页面布局是一个项目的核心,同时也一个项目的开端,良好的布局对项目有很大的影响,所以封面上的排版也是要点。 一个项目会有一个布局,或者多个布局,每一种布局各不一样。 下面是XAML的五个布局元素: ※ Gride:网格。 ※ DockPanel:泊靠式布局 ※ StackPanel:栈式布局 ※ WrapPanel:自动拆行面板 ※ Canvas:画布

    每个页面的布局分别如下: 一、Grid(网格布局) Grid的意思就是网格,。它可以自定义行和列并通过行列的数量、行高列宽来调整控件的布局。同时它的子控件被放在已经定义好的盒子里面,它的功能有很多,但是也很复杂。 特点: 1、 可以定义任意数量的行和列,非常灵活。 2、 行的高度和列的宽度可以使用绝对值、相对比例或自动调整的方式进行精确设定,并可以设置最大和最小值。 3、 内部元素可以设置自己所在的行和列,还可以设置自己纵向跨几行,横向跨几列。 4、 可以设置Children元素的对齐方向。 根据特点,Grid适用于: ●UI布局的大框架设计。 ●大量UI元素需要成行或者成列对齐的情况。 ●UI尺寸改变的时候,元素需要保留固有的宽度和高度比列

    二、DockPanel:泊靠式面板 ●DockPanel用于定义一个区域,在此区域中,您可以使子元素通过描点的形式排列,这些对象位于 Children 属性中 ●DockPanel会对每个子元素进行排序,并将根据指定的边进行停靠,多个停靠在同侧的元素则按顺序排 序。 ●在DockPanel中,指定停靠边的控件,会根据定义的顺序占领边角,所有控件绝不会交叠。 泊靠面板使用场合: DockPanel停靠容器,是专门用来负责自适应窗口的布局用的。 1、 填充整个剩余空间 2、 使最后元素不填充剩余空间

    三、StackPanel:栈式面板 StackPanel主要就是将控件按照行或列来顺序排列,但不会换行。 通过设置面板的Orientation属性设置了两种排列方式:横排(Horizontal)和竖排(Vertical)。 默认情况下,水平排列时,每个元素都与面板一样高;垂直排列时,每个元素都与面板一样宽。如果包含的元素超过了面板空间,它只会截断多出的内容。 特点: 每个元素各占一行或者一列 使用场合: 1、同类元素需要紧凑排列(如制作菜单和列表)。 2、移除其中的元素后能够自动补缺的布局或者动画。 3、StackPanel 适合水平或者垂直方向的布局。

    四、WrapPanel:自动折行面板(环绕面板) WrapPanel布局面板只要将各个控件从左至右按照行或列的顺序罗列,当长度或高度不够时就会自动调整进行换行,后续排序按照从上至下或从右至左的 顺序进行。 Orientation——根据内容自动换行。当Orientation属性的值设置为 Horizontal:元素是从左向右排列的,然后自上至下自动换行。当Orientation属 性的值设置为Vertical:元素是从上向下排列的,然后从左至右自动换行。 ItemHeight——所有子元素都一致的高度。每个子元素填充高度的方式取决于它的VerticalAlignment属性、Height属性等。任何比ItemHeight高的 元素都将被截断。

    ItemWidth——所有子元素都一致的宽度。每个子元素填充高度的方式取决于它的VerticalAlignment属性、Width属性等。任何比ItemWidth高的元 素都将被截断。

    五:Canvas:画布面板 1、 画布,用于完全控制每个元素的精确位置。他是布局控件中最为简单的一种,直接将元素放到指定位置,主要来布置图面。 2、使用Canvas,必须指定一个子元素的位置(相对于画布),否则所有元素都将出现在画布的左上角。 3、调整位置用Left、Right、Top和Bottom四个 附加属性。 4、如果Canvas是窗口主元素(即最外层的布局面板是Canvas),用户改变窗口大小时,Canvas也会随之变化,子元素的位置也会随之移动,以保证 相对于Canvas的位置属性不变。 5、Canvas允许子元素的部分或全部超过其边界,默认不会裁剪子元素,同时可以使用负坐标,即溢出的内容会显示在Canvas外面,这是因为默 认 ClipToBounds=”False”,因此画布不需要指定大小。 6、如果想复制画布内容,将ClipToBounds设为true即可

    最新回复(0)