Windows 8.1 应用再出发 - 几种布局控件

原文:Windows 8.1 应用再出发 -
几种布局控件

本篇为大家介绍Windows 商店应用中几种布局控件的用法。分别是Canvas、Grid、StackPanel 和
VariableSizedWrapGrid。

1. Canvas

Canvas使用绝对定位对子元素进行布局。元素使用Canvas.Left 和 Canvas.Top
附加属性进行绝对定位。元素可以使用Canvas.ZIndex附加属性指定分层,Canvas.ZIndex是int类型,值越大,分层越靠前。

所以下面代码中,如果元素的Canvas.ZIndex值相同的话,Canvas中元素的排列顺序按照从后到前为Red、Blue、Green、Yellow,如下面左图所示。但是因为红色色块设置了Canvas.ZIndex
= 1, 元素排列顺序变为Blue、Green、Yellow、Red,如下面右图所示。

<Canvas Width="320" Height="320">
<Rectangle Fill="Red" Width="100" Height="100" Canvas.ZIndex="1"/>
<Rectangle Fill="Blue" Width="100" Height="100" Canvas.Left="50" Canvas.Top="50"/>
<Rectangle Fill="Green" Width="100" Height="100" Canvas.Left="100" Canvas.Top="100"/>
<Rectangle Fill="Yellow" Width="100" Height="100" Canvas.Left="150" Canvas.Top="150"/>
</Canvas>

        

2. Grid

Grid是网格式布局,分别使用Grid.RowDefinitions 和
Grid.ColumnDefinitions定义Grid中的行和列。其高度和宽度可包括像素值、Auto(自动设置,默认值)和 * (比例值)三种。如下面代码中
* 和 2* ,比例分别代表 1/3 和 2/3 。

元素使用Grid.Row 和
Grid.Column附加属性分别定义元素所在行和列的索引,值必须大于或等于0,当值大于行数/列数的最大索引时,按最大索引处理。

使用Grid.RowSpan 和
Grid.ColumnSpan附加属性分别定义元素可跨的行数和列数,值必须大于0,当值大于剩余行数/列数时,按剩余行数/列数处理。

HorizontalAlignment 和 VerticalAlignment
分别定义元素的水平和垂直对齐方式,默认值均为Stretch。Margin 属性对元素进行相对定位。


<Grid Width="400" Height="200">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Border Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Background="Red" Margin="10,0,0,0"/>
<Border Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="1" Background="Blue" HorizontalAlignment="Left" Width="30"/>
<Border Grid.Row="1" Grid.RowSpan="2" Grid.Column="0" Background="Green" VerticalAlignment="Center" Height="80"/>
<Border Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="3" Background="Yellow"/>
</Grid>

3. StackPanel

StackPanel是流式布局,元素在单行中以垂直或水平方向进行堆叠。Orientation代表StackPanel内元素的排列方向,Horizontal为水平排列,Vertical为垂直排列。

当StackPanel垂直排列时,如果元素宽度未明确指定,则元素会拉伸以填满可用宽度;水平排列时,高度也是如此。


<StackPanel Orientation="Vertical" Width="400" Height="250" Background="DarkBlue">
<Border Background="DarkGray" Height="60"/>
<StackPanel Orientation="Horizontal" Background="DarkOrange" Height="100">
<Border Background="GreenYellow" Width="200"/>
<Border Background="Purple" Width="160"/>
</StackPanel>
</StackPanel>

4. VariableSizedWrapGrid

VariableSizedWrapGrid是网格式布局,当达到MaximumRowsOrColumns值时,元素会自换行到新行或新列。Orientation代表元素的排列方向,Horizontal为水平排列,Vertical为垂直排列。

通过VariableSizedWrapGrid.RowSpan 和
VariableSizedWrapGrid.ColumnSpan,内容可跨越多行和多列。根据 ItemHeight 和 ItemWidth
属性的指定设置元素大小。


<VariableSizedWrapGrid MaximumRowsOrColumns="3" ItemHeight="100" ItemWidth="100">
<Rectangle Fill="Red"/>
<Rectangle Fill="Blue" Height="160" VariableSizedWrapGrid.RowSpan="2"/>
<Rectangle Fill="Green" Width="160" VariableSizedWrapGrid.ColumnSpan="2"/>
<Rectangle Fill="Yellow" Height="160" Width="160" VariableSizedWrapGrid.RowSpan="2" VariableSizedWrapGrid.ColumnSpan="2"/>
</VariableSizedWrapGrid>

关于这几种布局控件基本使用方法就介绍完了,在以后的实际使用过程中会有更复杂的布局嵌套和定义,我们会再做讲解,谢谢。

Windows 8.1 应用再出发 - 几种布局控件,布布扣,bubuko.com

时间: 2024-10-13 18:50:21

Windows 8.1 应用再出发 - 几种布局控件的相关文章

Windows 8.1 应用再出发 - 几种新增控件(1)

原文:Windows 8.1 应用再出发 - 几种新增控件(1) Windows 8.1 新增的一些控件,分别是:AppBar.CommandBar.DatePicker.TimePicker.Flyout.MenuFlyout.SettingsFlyout.Hub 和 Hyperlink.我们分成两篇来介绍,本篇先为大家介绍AppBar.CommandBar.DatePicker 和 TimePicker. 1. AppBar Windows 8.1引入了几种新的控件来帮助我们更快捷的创建应用

Windows 8.1 应用再出发 - 几种常用控件

原文:Windows 8.1 应用再出发 - 几种常用控件 本篇为大家简单介绍Windows 商店应用中控件的用法,为方便讲解,我们在文本控件和按钮控件这两类中分别挑选有代表性的控件进行详细说明. 1. 文本控件 (1) TextBlock TextBlock是最常用的文本显示控件,重点关注以下属性: CharacterSpacing  字符之前的统一间距,间距 = 字体大小 / 1000.默认为0,正值增进跟踪和放宽字符间距.负值减少跟踪和收紧字符调间距. IsColorFontEnabled

Windows 8.1 应用再出发 - 几种新增控件(2)

原文:Windows 8.1 应用再出发 - 几种新增控件(2) 本篇我们接着来介绍Windows 8.1 的新增控件,分别是:Flyout.MenuFlyout.SettingsFlyout.Hub 和 Hyperlink. 1. Flyout Flyout被称为浮出控件,能起到提示或者简单交互作用.我们可以利用它来要求用户确认操作.收集用户输入信息或显示提示信息等.只有当用户点击时才显示Flyout,当点击外部任意点时,Flyout消失. Flyout通常会附加到Button上,所以Butt

Windows 8.1 应用再出发 - 几种更新的控件

原文:Windows 8.1 应用再出发 - 几种更新的控件 Windows 8.1 除了新增了很多很有用的控件外,还对一些控件做出了更新.接下来我们一起对这些更新的控件一一做出讲解. 1. FlipView 更新 翻转视图控件,在应用中常用作图片等内容的翻页/滑动显示.用户可以浏览多个项目,每次显示一个.下面我们来看看FlipView控件的简单用法: <FlipView Width="300" Height="300"> <FlipViewIte

Windows 8.1 应用再出发 (WinJS) - 几种新增控件(2)

原文:Windows 8.1 应用再出发 (WinJS) - 几种新增控件(2) 上篇我们介绍了Windows 8.1 和 WinJS 中新增控件中的 AppBarCommand.BackButton.Hub.ItemContainer,本篇我们接着来介绍 NavBar.Repeater 和 WebView. 1. NavBar NavBar 是专门用于导航命令的应用栏控件,它是AppBar 的子类.可以完成简单的链接,也可以完成多层链接. 类似XAML 中的 TopAppBar,NavBar

Windows 8.1 应用再出发 (WinJS) - 几种新增控件(1)

原文:Windows 8.1 应用再出发 (WinJS) - 几种新增控件(1) Windows 8.1 和 WinJS 引入了以下新控件和功能,分别是:AppBarCommand.BackButton.Hub.ItemContainer.NavBar.Repeater.WebView. 本篇我们先来介绍 AppBarCommand.BackButton.Hub.ItemContainer,其余三种放在下一篇中介绍. 1. AppBarCommand Windows 8.1 加入了AppBarC

Windows 8.1 应用再出发 - 视图状态的更新

原文:Windows 8.1 应用再出发 - 视图状态的更新 本篇我们来了解一下Windows 8.1 给应用的视图状态带来了哪些变化,以及我们怎么利用这些变化作出更好的界面视图. 首先我们来简单回顾一下Windows 8.0 时代的视图状态:     上图中,从左到右依次是Windows 8 应用的三种视图状态:Full Screen, Snapped 和 Filled. 其中Snapped 和 Filled 状态只能显示在横向分辨率在1366像素或更高的屏幕中.而Snapped视图固定宽度为

Windows 8.1 应用再出发 - 磁贴的更新

原文:Windows 8.1 应用再出发 - 磁贴的更新 本篇和大家一起了解一下Windows 8.1 中磁贴的更新,我们来看看如何利用它做出更好的应用磁贴. 首先我们从展现形式上来对比一下Windows 8 与 Windows 8.1 中的磁贴: Windows 8支持两种尺寸的磁贴,正方形磁贴(150 * 150 像素)和长方形磁贴(310 * 150 像素).如下图中邮件和日历属于长方形磁贴,地图和应用商店等属于正方形磁贴. Windows 8.1在8.0 的磁贴种类基础上,多支持了两种尺

Windows 8.1 应用再出发 (WinJS) - 创建一个简单项目

原文:Windows 8.1 应用再出发 (WinJS) - 创建一个简单项目 前面几篇我们介绍了如何利用 C# + XAML 完成Windows Store App 功能的实现,接下来的几篇我们来看看如何利用 Html + WinJS 来完成这些功能. 本篇我们使用WinJS 来创建一个简单的项目,来看看项目的构成是怎样的,与C#,XAML 的项目有哪些异同. 首先我们在Visual Studio 2013中选择模板 -> JavaScript -> Windows 应用商店来创建一个空白应