09
一到这里,难度就突然提升了好多。
这节课学习的是StackPanel控件。
首先,Bob给出了一个例子。
代码我照着视频打下来了:
<Page
x:Class="Stack.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Stack"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<StackPanel><!--这是第一层-->
<StackPanel><!--这是第二层-->
<TextBlock>First</TextBlock>
<TextBlock>Second</TextBlock>
<TextBlock>Third</TextBlock><!--这是第三层-->
<StackPanel Orientation="Horizontal">
<TextBlock>Fourth</TextBlock>
<TextBox></TextBox>
<Button>Six</Button>
</StackPanel><!--第三层结束-->
</StackPanel>
<!--第二层结束-->
<!--第二层并列-->
<StackPanel Height="200">
<Rectangle Fill="Pink" Height="200"/></StackPanel>
<!--并列结束-->
</StackPanel><!--第一层结束-->
</Page>
如果看得头晕的话,在VS中,也有叫做“文档大纲”的东西存在。
比如刚刚那个,就可以像这样表示出来。
可见,一共有3层StackPanel。
还有一个问题是,为什么要设置最外层的StackPanel呢?
为什么?试试不就知道了吗?
于是Bob一删,VS提示错误:“不允许多于一个Content出现!”
也就是说,在第一层删掉的情况下,原来的两层并列本来是没问题的,但是,问题就出在原第三层里。因为第一层不见了,所以,没了最外面的嵌套,也就是说,剩下的嵌套中的Content被设置了两次。所以不行啊。
对了,注意了,在打代码的时候,如果用StackPanel,一定要把原来的:
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
</Grid>
删了,否则,VS就不会提示出错,然后你会发现,拖拽窗口的时候,下面的少女粉会重叠上去!
这其实又回到Grid了!
还有是Grid和StackPanel的区别。
1.Grid可以重叠,而StackPanel不行;
2.Gird可以设置行列,StackPanel不行(也有可能Bob没讲);
3.……
第十课是复习课,我去写作业了……
10
本节课中,Bob推荐了一种学习方法——Cheat Sheet(暂译记忆表)
我就跟着视频打了一下:
UWP 知识点整理
UWP 04——什么是XAML?
Xaml是一种使用XML语法的,用于定义程序布局的语言。
UWP 05——类型转换
类型转换器,也就是把复杂的C#代码,通过XAML语言来表示出来。
UWP 06——默认属性、复杂属性、属性元素语法
例如<Button>诸葛亮下来战书</Button>,在这之中,Button(按钮)的Content(内容)显示为“诸葛亮下来战书”。
复杂属性,就是多层嵌套;属性语法,就是分析器是如何运作的。详细参见06课笔记。
UWP 07——XAML顶端、协议等
别碰文件顶部!!
这是整个文件的大前提!!
UWP 08——GRID
Grid没有Content属性!但是有Children属性。所以可以把控件塞到里面。
但是,Content只能赋值一次,多了不行。
当添加元素时,其实就是通过XAML写了C#代码:
Grid.Children.Add(Mybutton);
Grid有几种表达方式:
绝对表达:100(像素);
自动:Auto(取最(高)宽的元素的值);
比例:1* 2* 3* 之类的。指份数。
附加属性:
比如:
<Button Grid.Row="0"/>
这之中,Button并没有Row属性,他是继承于Grid(有点像Html)。
PLUS:
行、列都从“0”开始;
默认值都是“0”;
也就是说,你不打这个,就是“0行0列”。
UWP 09——StackPanel
别忘嵌套!!
默认是垂直排布;
当水平排布时,默认从左到右;
一般要使用多种组合控件;
Grid可以覆盖,而StackPanel不行。