WPF中的布局元素:

  • Grid:网格。类似HTML中的Table。

  • StackPanel:栈式面板。竖直或水平排成一条直线。

  • Canvas:画布。绝对坐标定位,类似于Windows Form的布局。

  • DockPanel:泊靠式面板。是具有停靠功能的布局控件,其内部控件根据附加属性指定停靠位置。

  • WrapPanel:自动折行面板。排满一行自动折行,类似HTML中的流式布局。

综合实例链接:WPF综合实例

Gird(网格控件):

RowDefinitions : 拆分行,ColumnDefinitions:拆分列.

Grid.Column:指定所属行,Grid.Row :指定所属列;Grid.RowSpan:跨行数,Grid.ColumnSpan:跨列数.

指定行(列)的高度(宽度):

固定值:通过制定一个数值,如:Width="50" 。

自适应:通过Auto关键字指定,根据内部控件自适应。

平分值:通过 数字* 的格式指定,公式 = (总宽度 – 固定值 – 自适应) / *数量之和 * * 数量

  <Grid><Grid.RowDefinitions><RowDefinition Height="100"/><RowDefinition/></Grid.RowDefinitions><Grid.ColumnDefinitions><ColumnDefinition Width="Auto"/><ColumnDefinition Width="1*"/><ColumnDefinition Width="2*"/></Grid.ColumnDefinitions><!--未指明Grid.Column,Grid.Row,则默认其Grid.Column=0,Grid.Row=0--><TextBlock Text="认识WPF布局元素"/><Button Grid.Column="1" Grid.Row="0" Content="按键" Width="100" Height="30"/><Rectangle Grid.Column="2" Grid.Row="0" Grid.RowSpan="2" Height="300" Width="80" Fill="LightBlue" /></Grid>

UniformGrid:在网格(网格中的所有单元格都具有相同的大小)中排列内容

StackPanel:

Orientation 排列方法,垂直还是水平:

  • Horizontal :按照水平排列

  • Vertical(默认) :按照垂直排列

FlowDirection 排列方向:

  • LeftToRight(默认):从左向右排列

  • RightToLeft:从右向左排列

    <Grid><Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinition/></Grid.ColumnDefinitions><Grid.RowDefinitions><RowDefinition/><RowDefinition/></Grid.RowDefinitions><StackPanel Orientation="Horizontal" Height="50"><Button Content="1" Width="50"/><Button Content="2" Width="50"/><Button Content="3" Width="50"/></StackPanel><StackPanel Orientation="Horizontal" Height="50" Grid.Column="1"><Button Content="1" Width="50"/><Button Content="2" Width="50"/><Button Content="3" Width="50"/></StackPanel><!--默认Orientation="Vertical"--><StackPanel Width="60" Height="100" Grid.Row="1"><Button Content="1" Width="50"/><Button Content="2" Width="50"/><Button Content="3" Width="50"/></StackPanel></Grid>

Canvas:

用于定义一个区域,可在其中使用相对于 Canvas 区域的坐标以显式方式来定位子元素(如:Canvas.Left="25"),Canvas.Zindex表示Canvas内控件Z轴位置,数字越大越靠上(其他布局元素的控件设置Z轴位置使用Panel.Zindex)。

    <Canvas><Ellipse Fill="Red"    Width="200" Height="100" Canvas.ZIndex="1" Canvas.Left="65" Canvas.Top="45"/><Rectangle Fill="Blue" Width="200" Height="200" Canvas.Left="200" Canvas.Top="100"/></Canvas>

DockPannel:

停靠的长度或宽度计算顺序依次为左右上下中(如:DockPannel.Dock="Right"),最后一个控件的数量自适应剩余空间。

    <DockPanel><Button DockPanel.Dock="Top" Background="Aqua">Top</Button><Button DockPanel.Dock="Left" Background="Green">Left</Button><Button DockPanel.Dock="Right" Background="Yellow">Right</Button><Button DockPanel.Dock="Bottom" Background="Pink">Bottom</Button><Button Background="Orange">Last</Button></DockPanel>

WrapPanel:

自动折行面板,WrapPanel 跟StackPanel有点类似,不同之处在于其根据内部控件大小自动换行。

WPF WPF布局元素相关推荐

  1. WPF代码模板-布局部分

    Grid 两行和三列 <Grid ShowGridLines="True"> <Grid.RowDefinitions> <RowDefinition ...

  2. 学习WPF——WPF布局——了解布局容器

    WPF布局工作内部原理 WPF渲染布局时主要执行了两个工作:测量和排列 测量阶段,容器遍历所有子元素,并询问子元素所期望的尺寸 排列阶段,容器在合适的位置放置子元素,并设置元素的最终尺寸 这是一个递归 ...

  3. WPF 项目开发入门(二) WPF 页面布局

    WPF 项目开发入门(一) 安装运行 WPF 项目开发入门(二) WPF 页面布局 WPF 项目开发入门(三)WPF 窗体与页面 WPF 项目开发入门(四) MVVM 模式 与 TreeView树组件 ...

  4. (转)WPF面板布局介绍Grid、StackPanel、DockPanel、WrapPanel

    回顾 上一篇,我们介绍了基本控件及控件的重要属性和用法,我们本篇详细介绍WPF中的几种布局容器及每种布局容器的使用场景,当 然这些都是本人在实际项目中的使用经验,可能还存在错误之处,还请大家指出. 本 ...

  5. ( 转)WPF面板布局介绍Grid、StackPanel、DockPanel、WrapPanel

    回顾 上一篇,我们介绍了基本控件及控件的重要属性和用法,我们本篇详细介绍WPF中的几种布局容器及每种布局容器的使用场景,当 然这些都是本人在实际项目中的使用经验,可能还存在错误之处,还请大家指出. 本 ...

  6. [WPF]WPF开发方法论

    纵观Windows GUI应用程序开发方法,从Windows API.MFC到Visual Basic再到.NET Framework,WPF的开发方法论是在.NET Framework方法论的基础上 ...

  7. HTML5新布局元素布局,HTML5新的布局元素

    HTML5相对于HTML4新增了一些布局元素 新增布局标签的优点: ⒈更加注重文档的结构内容而不是以什么形式展现出来 ⒉对人的友好,更加语义化,增加代码的可读性 ⒊对计算机友好,浏览器更容易解析 新增 ...

  8. HTML5 布局元素

    元素类型 块级元素 独占一行,不和其他元素待在一起 可以设置宽高 用来对网页进行布局,承载内容 行内元素 不会独占一行,可以和其他元素待在一行 不可以设置宽高,宽高由里面的内容决定 行内块级元素 不会 ...

  9. 【CSS布局】已知布局元素的高度,写出三栏布局,要求左栏、右栏宽度各为300px,中间自适应。

    CSS 的布局应该是 CSS 体系中的重中之重了,主要的布局方式有 table 表格布局, flex 盒子布局.float 浮动布局.position 定位布局,grid 网格布局,还有针对于移动端的 ...

最新文章

  1. 计算机学win7画图,Win7系统自带画图工具如何打开?win7打开画图工具教程
  2. 中科视拓开源SeetaFace2
  3. JavaScript label语句
  4. 在linux上ansi格式转换换utf-8格式会乱码吗?,c++对编码格式ANSI utf8 unicode 进行转换...
  5. ERP计划参数如何在线更新
  6. ES中 minimum_should_match 的用法和误区
  7. 给ecmall添加积分购物的功能
  8. 程序员应该常去的网站
  9. Deepin20-R7000开启显示器扩展
  10. From MAP, MLE, OLS, G-N to IEKF,EKF
  11. 千亿元宇宙市场,Soul、映客的新动力
  12. Ceph RGW高可用HA集群keepalived+Haproxy
  13. R语言 根据变量包含某些字符,生成新变量
  14. 漫画图解 ElasticSearch 搜索原理
  15. 实体关系抽取几篇论文
  16. 如何访问网络上其他计算机,电脑怎么连接别的网络
  17. 【Java基础学习】
  18. 无法打开物理文件 XXX.mdf,操作系统错误 5:5(拒绝访问。)的解决办法
  19. GO语言和区块链开发准备阶段-默克尔树
  20. 深入分析Java Web技术内幕

热门文章

  1. 关于springmvc项目一加入validation-api包就报错的解决方法
  2. VB.NET连接数据库的几种方法
  3. 莫比乌斯进阶:bzoj 2693 jzptab(Mobius)
  4. 下载模板引擎art-template时出现的问题及解决方案
  5. Gopher China 2019 讲师专访-腾讯/TARS开源团队核心成员陈明杰
  6. @Autowried注入方式
  7. 1062lcd在dxp哪个库_Protel DXP 自带常用元件库路径
  8. 关于Bootstrap的一些使用
  9. Educational Codeforces Round 118 (Rated for Div. 2) C. Poisoned Dagger(二分或搜索)
  10. sql server 学习教程