WPF 布局

最近项目需要,使用WPF编制一些简单的工具。现在将学习和使用过程中的一些体会记录下来,作为备忘。

WPF的布局与Bootstrap 的网格布局有些类似,通过使用Grid将区域划分为若干网格,然后在网格中放置控件。WPF的控件属性与WinForm的有相似的地方,都可以在后台代码中修改属性的内容,也可以在页面描述中定义模板和需要与后台模型的绑定属性。所不同的是WPF中控件模板的定义更灵活,但同时也更复杂,绑定功能更强大,但同时语法也更复杂。这里简单总结一下,便于以后查询应用。

Grid布局

使用Grid嵌套进行布局,可以定义基本的页面,下面的布局是基本的布局样式:


    
        
            
            
            
            
        
        
            
            
        
        
            
        
        
            
                
                
            
            
                
                
                
            
            
                

                
            
             
            
                

                
            
        
    


DockPanel布局

需要注意的是:DockPanel布局中最后一个控件填充剩余区域,而不是按从上到下的顺序:


        
            
            
                
                    
                    
                    
                    
                
                
                
                
            
            
                
                
                
                
                
                
            
            
                 
            
            
            
                
            
            
        
    

Canvas

支持坐标定位,在控件中使用Canvas.Left,Canvas.Top,Canvas.Right和Canvas.Bottom进行定位。

StackPanel

顺序排列控件,横向或者纵向,设置Orientation属性为Horizontal或Vertical。

WrapPanel

可以规定控件具有统一的宽度和高度,并且超出范围可以换行,也支持横向或纵向排列。

  • Orientation:这就像StackPanel中的Orientation属性,唯一不同的是默认值为Horizontal。当Horizontal Orientation看上去类似于Windows资源管理器的缩略图视图:元素是从左向右排列的,然后自上至下自动换行。Vertical Orientation看上去类似于Windows资源管理器的列表视图:元素是从上向下排列的,然后从左至右自动换行。
  • ItemHeight:所有子元素都一致的高度。每个子元素填充高度的方式取决于它的VerticalAlignment属性、Height属性等。任何比ItemHeight高的元素都将被截断。
  • ItemWidth:所有子元素都一致的宽度。每个子元素填充高度的方式取决于它的VerticalAlignment属性、Width属性等。任何比ItemWidth高的元素都将被截断。

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