UWP学习笔记 17-18

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 有自己处理的顺序:

先板后件再相邻。

也就是说:

  1. 优先处理与面板有关的事件:(先板)
  2. 再处理组件之间的关系,比如,左对齐,右对齐等改变长度、宽度的事件;(后件)
  3. 最后处理组件之间的位置关系(再相邻)。

例如这个:

▲方鸿渐之怒

上面的部分应该不用多讲吧,左侧对齐,右侧对齐,紧贴之类的。

重要的是下方的一栏。

由于在程序的制作过程中,可能要用到不止一个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;
}

(别在意这个名字)

这个比较强。“取相反值”的算法让人佩服。

点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据