32-回顾前面-UWP程序的架构-起始页
了解 UWP 程序的启动顺序,以及各个文件的用途。我们设置其他的启动页面,不适用默认的 MainPage。
rootFrame.Navigate(typeof(MainPage), e.Arguments);Code language: CSS (css)
在 app 的类里面配置我们的这个起始页面,我们可以更改成其他的页面的。我们创建一个空白页面,让它作为起始页面。
认识布局-宽度和高度
布局管理是从一个整体的角度去把握应用程序的界面设计,Windows10 通用应用程序可以部署到多种设备中,有各种不同的分辨率和长宽对比。
主要的布局面板有 Grid、Canvas、StackPanel 和 RelativePanel。一个应用程序的最顶层必须是一个面板。从布局的角度来说,外层的面板管理里面的面板,一层层地递归下去。
每一个布局面板都有自己的规则,它需要按照这些规则去管理里面的控件。面板拥有完全的分配权,不仅仅是分配空间,还决定元素的位置,因为空间总是跟位置相关的。
布局通用属性
1. 长度相关的属性
- Width:宽度
- Height:高度
- MaxWidth:最大宽度约束
- MaxHeight:最大高度约束
- MinWidth:最小宽度约束
- MinHeight:最小高度约束
如果有空间没有设置宽度和高度的相关属性,并不代表宽度和高度为 0,控件会自适应分配高度和宽度。
例如 TextBlock 控件,如果没有设置高度,但是设置了字体大小,则字体越大高度就会越大。如果控件的内容是动态的,这个时候应该设置高度和宽度。
认识布局-排列相关的属性
排列相关的属性主要有 HorizontalAlignment 和 VerticalAlignment 属性。
HorizontalAlignment 属性表示获取或者设置在布局父级(如面板或者项控件)水平对齐特征:
- Left:表示左对齐
- Center:表示居中对齐
- Right:表示靠右对齐
- Stretch:表示拉伸以填充整个元素布局槽
垂直对齐,VerticalAlignment 属性表示在父对象中垂直对齐特征,有四种:
- Top:表示顶部对齐
- Center:表示居中对齐
- Bottom:表示底部对齐
- Stretch:表示拉伸以填充整个父元素
在使用上面两个属性的时候,还要注意的是,在对象上显示设置 Height 和 Width 属性时,这些度量值在布局过程中将具有较高优先级,并且能够取消将 HorizontalAlignment 和 VerticalAlignment 属性设置为 Stretch 的典型效果。
如果使用 Canvas 面板,在构成布局时,则不使用 HorizontalAlignment 和 VerticalAlignment 属性,因为 Canvas 是基于绝对定位的。
边距 Margin
边距 Margin,表示获取或设置外边距。三种取值方式:
- 一个数字:比如 Margin=”1″,则左、上、右、下都是 1
- 两个数字:比如 Margin=”1,2″,则左右是 1,上下是 2
- 四个数字:比如 Margin=”1,2,3,4″,则表示左 1、上 2、右 3、下 4
练一练
创建一个 BlankPage1.xaml 页面,然后添加一个 textblock 和 images:
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0">foxdevelop</TextBlock>
<Image Grid.Row="1" Source="images/093007omy75nd2azzy7w2y.png"/>
</Grid>Code language: HTML, XML (xml)
在 app 里面指定这个页面为起始页:
rootFrame.Navigate(typeof(BlankPage1), e.Arguments);Code language: CSS (css)
