WPF之基础布局

开发工具与关键技术:XAML/WPF C#
作者:王福驰
撰写时间:2019年4月15日

在WPF中大小字母敏感.
WPF中的布局有六种,分别是StackPanel 栈面布局,WrapPanel环绕布局,DockPanel:停靠布局,Canvas:画布布局,Grid网格布局,
我们来简单的学习WPF的五大模块的布局:
一、StackPanel栈面布局,也可以叫栈面板
他有两种形式:第一种是垂直方向排列,第二种是水平方向排列
是否垂直或者水平Orientation=” Horizontal”或者Orientation=” Vertical”来确定的。
Horizontal:水平排列,Vertical:垂直排列
特点:每个元素个元素各占一行或者一列;如下图

左边是垂直排列加水平排列,右边是垂直排列 ,控件会交叠。前一个元素会被后一个元素发生重叠如左边
WPF之基础布局_第1张图片
代码如下:



                
                    
                        
                        
                        
                        
                    
                
                
                    
                        
                        
                        
                        
                    
                
            

  
  
                
                    
                        
                        
                        
                        
                    
                
            

二、WrapPanel环绕布局,也可以叫环绕面板
他的排列也是两种:垂直和水平排列
当Orientation属性的值设置为 Horizontal:元素是从左向右排列的,然后自上至下自动换行。当Orientation属性的值设置为Vertical:元素是从上向下排列的,然后从左至右自动换行。
如果你将两种属性的值放在同一个窗体,他们会重叠在一起。如下图
图一是窗体高度较小时候的效果,图二是窗体高度较大时的效果
WPF之基础布局_第2张图片
图一
WPF之基础布局_第3张图片
图二



                
                
                
                
                
                
            

            
                
                
                
                
                
                
            

三、DockPanel:停靠布局,也可以叫停靠面板
在一个区域内,进行元素排版,在属性默认情况,先行排布的占领大,他是绝不会交叠,所以一个元素排在左边,那左边都是他的,在第二个元素排在上边,那他的左边的那部分他是没有份的,第三个元素排布在右边,那他的上面的那部分是没有他的份,第四个元素排布在下面,那他只有贴着底部的份,左右是没有的。再加一个元素,那他最后元素填充剩余空间如图一,
WPF之基础布局_第4张图片
如果你给他DockPanel属性LastChildFill设置为false,那他最后元素不填充剩余空间
WPF之基础布局_第5张图片



          
          
          
          
          



          
          
          
          
          

四、Canvas:画布布局,
注意:当用户改变窗体,Canvas也随之改变,Canvas允许子元素的部分或全部超过其边界,默认不会裁剪子元素,只有你设置属性将ClipToBounds属性设为true才会裁剪子元素
还有左和右不能同时出现,上和下也一样,左上右下来处理,左右同时出现右是无效的,上下同时出现下是无效的。
WPF之基础布局_第6张图片



       
        
        

五、Grid网格布局
Grid网格,以表格形式布局元素,对于整个面板上的元素进行布局,它的子控件被放在一个一个事先定义好的小格子里面,整齐配列,里面可以为空,同一个单元格中的子元素不会与其他元素交互布局,同一个单元格信息会重叠,在单元格里面你可以放其他的布局。
具体有多少行有多少列,都是RowDefinition和ColumnDefinition来控制。尽管Grid面板被设计成不可见的,但可将Grid.ShowGridLines属性设置为True,从而更清晰的观察Grid面板,方便调试,可以更准确地控制Grid面板如何选择列宽和行高。
网格布局,可以用比例,固定的尺寸,自动设置尺寸,Grid网格布局的单元格是0行0列开始,如在三行三列的中间那个单元格设置,一定加上Grid.Row=“1”,Grid.Column="1"如下图:
WPF之基础布局_第7张图片



        
            
            
            
        
        
            
            
            
        
               
            
        
               
            
        
            
            
        
        
            
        
    

你可能感兴趣的:(WPF之基础布局)