WPF 布局方式总结

WPF常用的容器组件主要有Grid、Canvas、StackPanel、WrapPanel、UniformGrid等几类,每类容器组件的特点如下表描述:

容器名称 布局特点
Grid 按行列排列内容,如果没有特别说明行列则内容充满容器,多个内容则重叠充满内容
StackPanel 水平或垂直的放置内容元素
WrapPanel 自动换行的方式放置内容元素
DockPanel 按照Top、left、right等方式布局内容元素,最后一个元素充满可利用的容器空间
UniformGrid 自动根据容器大小,自动采用行列方式排列内容元素
Canvas 在内容元素中设置附加属性Top、Left,根据Top、Left布局内容元素

一、Grid布局示例:

grid 不特别指明长、宽时,自动充满父容器,定义了行列属性时,按照行列设置在其内容放置内容元素,示例如下:





















当然也可以不设置行列属性,默认情况下,内容元素充满grid容器;示例如下:

    
        
                
    

默认情况下,在容器中最后定义的内容元素覆盖前面的内容元素,如果设置了Panel.ZIndex属性按照ZIndex属性来重叠布局

二、StackPanel布局

放置其中的元素,按照StackPanel的属性Orientation确定采用横排布局还是纵向布局;示例如下 :


        
        
        
        
        

纵向布局内容要素,界面如图示意:

WPF 布局方式总结_第1张图片

三、Canvas布局

Canvas主要用于作图使用,提供了ClipToBounds对超出容器的内容进行裁剪,当ClipToBounds=true时,自动裁剪超过容器的内容



            

            

        

内容元素通过Canvas.Left、Canvas.Top附加属性设置在容器中的实际位置,通过Panel.Zindex附加属性设置显示上的重叠属性

四、DockPanel布局

DockPanel采用停靠的方式设置其内容元素的布局,最后一个元素默认情况充满剩下容器空间,示例如下:


        
        
        
        
        
    

布局界面如下示意:

WPF 布局方式总结_第2张图片

五、WrapPanel布局

WrapPanel默认按照从左到右的方式(主要依据FlowDirection)布局内容元素,不满一行后自动换行。示例如下:


        

六、UniformGrid布局

UniformGrid 就是Grid的简化版,每个单元格的大小相同,不需要定义行列集合。每个单元格始终具有相同的大小,每个单元格只能容纳一个控件,将自动按照定义在其内部的元素个数,自动创建行列,并通常保持相同的行列数。

 
    
    
    
    

WPF 布局方式总结_第3张图片

你可能感兴趣的:(c#)