当前位置: 首页 > 编程语言 > .NET综合 > 正文

Windows 8风格应用开发入门 十七 布局控件

时间:2013-05-18

Panel类是开发Windows 8 Store应用中一个重要类,它在Windows 8 Store应用布局系统中扮演非常重要角色。

Panel可以承载多个子元素,面板类可以把子元素存放在栈中、或网格里面、或把子元素停靠在其边缘等。

Panel类自身是一个抽象类,下面是Panel类的层次结构:

Windows 8 Store应用中包含的三个标准布局控件:Canvas(通常在常规布局中,尽量不要考虑使用Canvas,不过在某些特殊情况下,使用Canvas还是非常方便的)、Grid(它是大多数常规布局的首选)、StackPanel(可能是最简单的一种面板类型)。

Canvas

要在Canvas中定位元素,需要提供相对于左上角的水平坐标和竖直坐标。

代码实现效果:

其中Left和Top属性表示元素的左上角与Canvas左上角的相对位置。

一般来说Canvas比较适合把元素布局在任何位置上,因此这样更适合于矢量图形编程而不是控件布局编程。

同样我们C#代码中控制控件元素在Canvas中布局。

我们注意到xaml代码中并没有设置button的相对于Canvas的Left和Top属性,这里通过C#代码进行设置。

SetValue方法定义在DependencyObject类里面,LeftProperty和TopProperty是Canvas中DependencyProperty类型的静态字段。

两种布局设置方式最后实现效果是一样。