wp7中Grid布局类似HTML中的表格,但是又不太一致!

为了测试新一个3行3列的Grid

方了方便,剔除掉其它XAML代码

[c-sharp:collapse] view plaincopy

 
  1. <Grid x:Name="LayoutRoot" ShowGridLines="True">
  2. <Grid.RowDefinitions>
  3. <RowDefinition x:Name="r1"></RowDefinition>
  4. <RowDefinition x:Name="r2"></RowDefinition>
  5. <RowDefinition x:Name="r3"></RowDefinition>
  6. </Grid.RowDefinitions>
  7. <Grid.ColumnDefinitions>
  8. <ColumnDefinition x:Name="c1"></ColumnDefinition>
  9. <ColumnDefinition x:Name="c2"></ColumnDefinition>
  10. <ColumnDefinition x:Name="c3"></ColumnDefinition>
  11. </Grid.ColumnDefinitions>
  12. </Grid>

行分别命名为r1,r2,r3

其中行用高度,列用宽度来指定大小,同HTML不同的是用*表示百分比,确切的说不叫百分比。


示例1,仅以行做示例:

[xhtml:collapse] view plaincopy

 
  1. <RowDefinition x:Name="r1" Height="40*"></RowDefinition>
  2. <RowDefinition x:Name="r2"  Height="40*"></RowDefinition>
  3. <RowDefinition x:Name="r3" Height="40*"></RowDefinition>

如果按百分比,三个行已经超过了100%,但是实际上SL是三个行平分的,可以想象成分成120份,每行占40份,就是每行1/3。平均分配

示例2:

[xhtml:collapse] view plaincopy

 
  1. <RowDefinition x:Name="r1" Height="20*"></RowDefinition> 
  2. <RowDefinition x:Name="r2"  Height="40*"></RowDefinition> 
  3. <RowDefinition x:Name="r3"></RowDefinition> 

r3行占20*吗?实际上r1的高度是r3的20倍,r2的高度是r3的40倍,r2的高度是r1的2倍


示例3:

[xhtml:collapse] view plaincopy

 
  1. <RowDefinition x:Name="r1" Height="20*"></RowDefinition>
  2. <RowDefinition x:Name="r2"  Height="40*"></RowDefinition>
  3. <RowDefinition x:Name="r3" Height="auto"></RowDefinition>

r3根据里面的控件高度占用高度,余下的r1和r2按比例分,即r2是r1高度的2倍


示例4:

[xhtml] view plaincopy

 
  1. <RowDefinition x:Name="r1" Height="20*"></RowDefinition>
  2. <RowDefinition x:Name="r2"  Height="40*"></RowDefinition>
  3. <RowDefinition x:Name="r3" Height="auto" MaxHeight="100"></RowDefinition>

如果对r3的高度指定为自动,则不会受Min/MaxHeight高度的限制,只会受内部控件高度影响


示例5:

[xhtml:collapse] view plaincopy

 
  1. <RowDefinition x:Name="r1" Height="20*"></RowDefinition>
  2. <RowDefinition x:Name="r2"  Height="40*"></RowDefinition>
  3. <RowDefinition x:Name="r3" Height="50*" MaxHeight="200"></RowDefinition>

此时r3的高度受Min/MaxHeight高度控制,若50/(20+40+50)*总高度  > 200,则按200显示,否则按50/(20+40+50)*总高度 显示


示例6:

[xhtml:collapse] view plaincopy

 
  1. <RowDefinition x:Name="r1" Height="20*"></RowDefinition>
  2. <RowDefinition x:Name="r2"  Height="40*"></RowDefinition>
  3. <RowDefinition x:Name="r3" Height="500" MaxHeight="200"></RowDefinition>

此时r3的高度一直保持200,余下的r1和r2按比例分配,即高度大于最大高按最大高度显示,高度小于最小高度按最小高度显示。


示例7:

[xhtml] view plaincopy

 
  1. <RowDefinition x:Name="r1" Height="100"></RowDefinition>
  2. <RowDefinition x:Name="r2"  Height="200"></RowDefinition>
  3. <RowDefinition x:Name="r3" Height="50"></RowDefinition>

各行按实际高度展示,若总宽度不等于350,默认r3高度适应(但是ActualHeight = 50)

Grid布局方式的更多相关文章

  1. 图文详解前端CSS中的Grid布局,你真的可以5分钟掌握

    前言 网站的布局是一个网站设计的根本,CSS的Grid布局已经成为了未来网站布局的基本方式. 今天这篇文章我们通过图文,一起看看如何自己实现Grid布局方式. CSS 第一个Grid布局 首先我们看看 ...

  2. 【Android UI】Android开发之View的几种布局方式及实践

    引言 通过前面两篇: Android 开发之旅:又见Hello World! Android 开发之旅:深入分析布局文件&又是“Hello World!” 我们对Android应用程序运行原理 ...

  3. 对比MFC资源文件谈谈WPF布局方式

    对比MFC资源文件谈谈WPF布局方式 MFC方式 对于传统的MFC基于UI的应用程序设计通常分两步走,首先是设计UI,使用的是RC文件,然后是代码文件,对RC文件进行操作,如下面Figure 1 的基 ...

  4. Android 开发之旅:view的几种布局方式及实践

    本文的主要内容就是分别介绍以上视图的七种布局显示方式效果及实现,大纲如下: 1.View布局概述 2.线性布局(Linear Layout) 2.1.Tips:android:layout_weigh ...

  5. Android 开发:view的几种布局方式及实践

    View的几种布局显示方法,以后就不会在针对布局方面做过多的介绍.View的布局显示方式有下面几种:线性布局(Linear Layout).相对布局(Relative Layout).表格布局(Tab ...

  6. [转]使用CSS3 Grid布局实现内容优先

    使用CSS3 Grid布局实现内容优先  http://www.w3cplus.com/css3/css3-grid-layout-module.html 本文由大漠根据Rachel Andrew的& ...

  7. grid 布局 CSS3

    display:grid 是一种新的布局方式,旧的布局方式通常有副作用,例如float(需要额外修复浮动)或者inline-block(两个元素之间的空格问题)   把父元素定义为grid,就像表格一 ...

  8. grid 布局

    display:grid 是一种新的布局方式,旧的布局方式通常有副作用,例如float(需要额外修复浮动)或者inline-block(两个元素之间的空格问题)   把父元素定义为grid,就像表格一 ...

  9. CSS Grid 布局完全指南(图解 Grid 详细教程)

    CSS Grid 布局是 CSS 中最强大的布局系统.与 flexbox 的一维布局系统不同,CSS Grid 布局是一个二维布局系统,也就意味着它可以同时处理列和行.通过将 CSS 规则应用于 父元 ...

随机推荐

  1. 从Dying gasp功能看Linux的响应速度(zhuan)

    转自https://blog.csdn.net/qq_20405005/article/details/77967358 前一阵子在做dying gasp功能测试,过程中恰好测试到了Linux的响应速 ...

  2. javascript 模拟按键点击提交

    上代码 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> & ...

  3. nginx 日志切割(也适用于docker)

    =============================================== 2019/4/6_第2次修改                       ccb_warlock 201 ...

  4. yum安装tomcat

    http://www.cnblogs.com/liaolongjun/p/5638740.html http://www.awspack.com/os/linux/yum-install-tomcat ...

  5. HTML5练习3

    1.输入问题,判断答案,按钮倒计时 主要代码: <!doctype html> <html> <head> <meta charset="utf-8 ...

  6. 【转载】Java是传值还是传引用

    1. 简单类型是按值传递的 Java 方法的参数是简单类型的时候,是按值传递的 (pass by value).这一点我们可以通过一个简单的例子来说明: /* 例 1 */ /** * @(#) Te ...

  7. Xcode6.1 模拟器路径

    Xcode 5的iOS模拟器的应用的目录是在~/Library/Application Support/iPhone Simulator/<iOS_Version>/Application ...

  8. P1757 通天之分组背包

    P1757 通天之分组背包背包中的经典问题,我竟然不知道.分组背包就是每个物品有一个所属的小组,小组内的物品会冲突.就是把01背包中的两个for换一下位置01:for(i,1,kind) for(j, ...

  9. 【翻译】checkbox的第三种状态

    checkbox只有两种值:选中(checked)或未选中(unchecked).它可以有任何值,但是表单提交时checkbox的值只能是checked或unchecked.它的默认值是uncheck ...

  10. 网络爬虫中Fiddler抓取PC端网页数据包与手机端APP数据包

    1 引言 在编写网络爬虫时,第一步(也是极为关键一步)就是对网络的请求(request)和回复(response)进行分析,寻找其中的规律,然后才能通过网络爬虫进行模拟.浏览器大多也自带有调试工具可以 ...