17
在这次的文章中,Bob主要讲解的是RelativePanel——微软在XAML中最新推出的一种控件。
RelativePanel的功能,其实,用Grid和StackPanel也能实现,但是,相比而言,RelativePanel更加的简洁,方便,省事。
本课的主要内容是概述,以及对RelativePanel几个属性的简单介绍。
- RelativePanel.AlignRightWithPanel :始终与Panel右边界对齐;
- RelativePanel.LeftOf="RedRectangle" :始终在某个组件旁边,这里是红正方形(下同);
- RelativePanel.AlignVerticalCenterWith="RedRectangle" :始终与某个组件中心对齐(锚点处于同一水平线上);
- RelativePanel.AlignTopWith="PurpleRectangle" :始终与某个组件顶端对齐;
- RelativePanel.Below="RedRectangle" : 始终在某个组件下方。
注意!!这里的对齐等关于组件的操作与PS等不同,他直接变化组件宽度,而不是移动!!
在RelativePanel操作中,VS 有自己处理的顺序:
先板后件再相邻。
也就是说:
- 优先处理与面板有关的事件:(先板)
- 再处理组件之间的关系,比如,左对齐,右对齐等改变长度、宽度的事件;(后件)
- 最后处理组件之间的位置关系(再相邻)。
例如这个:
上面的部分应该不用多讲吧,左侧对齐,右侧对齐,紧贴之类的。
重要的是下方的一栏。
由于在程序的制作过程中,可能要用到不止一个TextBlock,所以,在中间就要换一种方法了。
比如:
在中间居中任意一个文本框后,再居中对齐后,你会发现跑偏了。
这里,只能用一个StackPanel把他包起来,然后把整个对RelativePanel对齐。
还讲了一个Border控件,件如其名,就是加边框用的。也就是我最底下那个控件了。这个我觉得只要了解就可以了。
18
本节课继续讲有关汉堡菜单的内容。
这次是一个叫做“Splitview”的控件,这个控件,就是用来设置UWP中那个一弹一弹的组件的。
比如这样:
这个其实没什么难的。
上代码:
<Page
x:Class="SplitView1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:SplitView1"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<StackPanel Orientation="Horizontal">
<SplitView Name="MrSoil">
<SplitView.Pane>
<StackPanel>
<TextBlock Text ="克"></TextBlock>
<TextBlock Text ="莱"></TextBlock>
<TextBlock Text ="登 "></TextBlock>
</StackPanel>
</SplitView.Pane>
<SplitView.Content>
<StackPanel>
<TextBlock Text ="野"></TextBlock>
<TextBlock Text ="鸟"></TextBlock>
<TextBlock Text ="大"></TextBlock>
<TextBlock Text ="学 "></TextBlock>
</StackPanel>
</SplitView.Content>
</SplitView>
<Button Click="Button_Click">立刻点击入学吧!</Button>
</StackPanel>
</Page>
是吧?挺短小的。
这里还好吧。
主要是Bob后面的写法很让人佩服。
比如:
private void Button_Click(object sender, RoutedEventArgs e)
{
MrSoil.IsPaneOpen = !MrSoil.IsPaneOpen;
}
(别在意这个名字)
这个比较强。“取相反值”的算法让人佩服。