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类型的静态字段。
两种布局设置方式最后实现效果是一样。
时间: 2024-11-01 18:15:51