Silverlight开发历程—(布局控件-Canvas)
2011-10-29 10:12
447 查看
每一个XAML文件都应该有一个布局对象,布局对象相当于一个容器他可以容纳几乎所有的XAML元素,Silverlight为开发者提供了三种布局对象Canvas、StackPanel、Grid。
Canvas:Canvas允许声明一个区域,包含在该区域内的XAML元素可以使用相对Canvas坐标的附加属性来显示和定位元素。
StackPanel:StackPanel允许把若干个元素放在StackPanel中排成一行或者一列。
Grid:允许声明一个若干行若干列组成网格,行和列具备自适应能力。
Canvas 相对定位
Canvas 相对定位是在Canvas目标元素相对于父元素Canvas的位置,Canvas内的任何元素都可以使用附加属性Canvas.Top和Canvas.Left来设置元素的相对位置。
Canvas嵌套
Canvas嵌套,在Canvas中可以进行多个Canvas对象进行嵌套。
使用边框(Border)
Canvas有BackGround属性可以设置背景颜色,但是Canvas没有类似于矩形边框的颜色和宽度,更不能像矩形一样设置圆角边框,但是Silverlight提供了专门的边框元素Border可以实现元素的边框,下面结合Canvas嵌套、Canvas相对定位、Canvas使用边框我们做了一个综合的例子:
运行结果:
Z轴顺序
前面我们讨论了元素二维空间的定位,Silverlight还支持一种Z轴顺序,其元素之间可以相互重叠对,对象之间的位置是根把XAML声明的先后顺序来决定的,后声明的在先声明之上这样就会发生 重叠,但是这种重叠并不是一味不变的我们可以根据Silverlight提供的Canvas的ZIndex属性来设置元素显示的先后顺序来确定哪一个在上面哪一个在下面(索引值越小越在下面),例如下面这个例子(左边的是使用默认的排序,右边的是设置了元素的ZIndex属性):
运行结果:
例子很简单,只是为了体验Silverlight的Canvas的布局功能 。
Canvas:Canvas允许声明一个区域,包含在该区域内的XAML元素可以使用相对Canvas坐标的附加属性来显示和定位元素。
StackPanel:StackPanel允许把若干个元素放在StackPanel中排成一行或者一列。
Grid:允许声明一个若干行若干列组成网格,行和列具备自适应能力。
Canvas 相对定位
Canvas 相对定位是在Canvas目标元素相对于父元素Canvas的位置,Canvas内的任何元素都可以使用附加属性Canvas.Top和Canvas.Left来设置元素的相对位置。
Canvas嵌套
Canvas嵌套,在Canvas中可以进行多个Canvas对象进行嵌套。
使用边框(Border)
Canvas有BackGround属性可以设置背景颜色,但是Canvas没有类似于矩形边框的颜色和宽度,更不能像矩形一样设置圆角边框,但是Silverlight提供了专门的边框元素Border可以实现元素的边框,下面结合Canvas嵌套、Canvas相对定位、Canvas使用边框我们做了一个综合的例子:
<Canvas x:Name="LayoutRoot" Background="White"> <Border BorderThickness="30" BorderBrush="Green" CornerRadius="30" Canvas.Left="30" Canvas.Top="40" Width="330" Height="230"> <Canvas Background="Yellow"> <Canvas Background="Blue" Width="230" Height="130" Canvas.Left="20" Canvas.Top="21" > <Canvas Background="Red" Width="200" Height="97" Canvas.Left="15" Canvas.Top="20"> <TextBlock Height="63" Width="194" FontSize="15" Foreground="White" Canvas.Left="6" Canvas.Top="19"> 这是一个使用了边框还使用了<LineBreak/>Canvas嵌套的Canvas </TextBlock> </Canvas> </Canvas> </Canvas> </Border> </Canvas>
运行结果:
Z轴顺序
前面我们讨论了元素二维空间的定位,Silverlight还支持一种Z轴顺序,其元素之间可以相互重叠对,对象之间的位置是根把XAML声明的先后顺序来决定的,后声明的在先声明之上这样就会发生 重叠,但是这种重叠并不是一味不变的我们可以根据Silverlight提供的Canvas的ZIndex属性来设置元素显示的先后顺序来确定哪一个在上面哪一个在下面(索引值越小越在下面),例如下面这个例子(左边的是使用默认的排序,右边的是设置了元素的ZIndex属性):
<Canvas x:Name="LayoutRoot" Background="White"> <Ellipse Width="100" Height="100" Stroke="Black" StrokeThickness="3" Fill="Yellow"></Ellipse> <Ellipse Width="100" Height="100" Stroke="Black" StrokeThickness="3" Fill="Green" Canvas.Left="20" Canvas.Top="20"></Ellipse> <Ellipse Width="100" Height="100" Stroke="Black" StrokeThickness="3" Fill="Red" Canvas.Left="42" Canvas.Top="43"></Ellipse> <Ellipse Width="100" Height="100" Stroke="Black" StrokeThickness="3" Fill="Yellow" Canvas.Left="300" Canvas.ZIndex="3"></Ellipse> <Ellipse Width="100" Height="100" Stroke="Black" StrokeThickness="3" Fill="Green" Canvas.Left="288" Canvas.ZIndex="2" Canvas.Top="28"></Ellipse> <Ellipse Width="100" Height="100" Stroke="Black" StrokeThickness="3" Fill="Red" Canvas.Left="269" Canvas.ZIndex="1" Canvas.Top="62"></Ellipse> </Canvas>
运行结果:
例子很简单,只是为了体验Silverlight的Canvas的布局功能 。
相关文章推荐
- Silverlight开发历程—(布局控件-Canvas)
- Silverlight开发历程—(布局控件-Canvas)
- Silverlight开发历程—(布局控件-Canvas)
- Windows8 Metro应用开发之C#(2)- 布局控件Grid,Canvas,StackPanel(延续Silverlight)
- Silverlight玩转控件(二)——Canvas布局
- Silverlight:三个基本布局控件(Canvas、StackPanel、Grid )
- Silverlight之UI设计学Blend五【基本布局控件2】------Canvas控件\stackPanel控件
- silverlight三个基本布局控件(Canvas、StackPanel、Grid ) 详解
- Silverlight玩转控件(二)——Canvas布局
- Silverlight 三个基本布局控件(Canvas、StackPanel、Grid )
- Silverlight 2学习笔记二:三个基本布局控件(Canvas、StackPanel、Grid )
- Silverlight 2学习笔记二:三个基本布局控件(Canvas、StackPanel、Grid )
- silverlight布局和式样中的常用三大控件 Canvas Grid StackPanel
- silverlight布局和式样中的常用三大控件 Canvas Grid StackPanel
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十四) 精灵控件横空出世!①
- Silverlight开发历程—(利用画刷制作星光特效)
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十五) 精灵控件横空出世!②
- Android开发之自定义布局和控件
- WinForm界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用
- Silverlight开发历程—(绘制矢量图之Line)