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. MySQL binlog导入失败

    一个同事问我,说他用innobackupex恢复数据后用mysqlbinlog导入增量数据时,发现数据没有导入进去并且也没有报错. mysqlbinlog /u01/mysql_py/database ...

  2. 查看library的依赖树

    今天一同事问我如何解决包依赖重复的问题,我告诉他你可以用exclude,provide,compileOnly等关键字,他问我如何查找某个库依赖了什么,我说有一个插件,愣是想了好久没想起什么名字来,搜 ...

  3. Android实现手机摄像头的自动对焦

    如何实现Android相机的自动对焦,而且是连续自动对焦的.当然直接调用系统相机就不用说了,那个很简单的.下面我们主要来看看如如何自己实现一个相机,并且实现自动连续对焦. 代码如下: public c ...

  4. 启动tomcat的时候爆出如下错误

    The JRE_HOME environment variable is not defined correctly This environment 解决办法: https://blog.csdn. ...

  5. apollo配置相关

    一.运维 1. 数据库ConfigDB,PortalDB 2. 基础服务 :Config-Service,(Meta-Server),Admin-Service,Portal 3. 应用在SIT.UA ...

  6. jQuery.lazyload详解(转)

    转自:http://www.cnblogs.com/wenbo/archive/2011/07/15/2107579.html <script type="text/javascrip ...

  7. 开源项目TypeScript

    TypeScript 优秀开源项目大合集   TypeScript出来有段时间了,也冒出了很多用TypeScript开发的优秀开源项目,搜寻了一些基于TypeScript项目,分享给大家: https ...

  8. 025 Spark中的广播变量原理以及测试(共享变量是spark中第二个抽象)

    一:来源 1.说明 为啥要有这个广播变量呢. 一些常亮在Driver中定义,然后Task在Executor上执行. 如果,有多个任务在执行,每个任务需要,就会造成浪费. 二:共享变量的官网 1.官网 ...

  9. 001 Ajax中XMLHttpRequest的讲解

    1.介绍 2.方法 3.程序位置设计 4.程序(针对XMLHttpRequest) <%@ page language="java" contentType="te ...

  10. 010 使用jquery实现小需求练习-------对应选择器的练习

    1.需求 点击所有的 p 节点, 能够弹出其对应的文本内容 使第一个 table 隔行变色 点击 button, 弹出 checkbox 被选中的个数 2.程序 <!DOCTYPE html&g ...