zoukankan      html  css  js  c++  java
  • Silverlight开发历程—(布局控件Canvas)

    每一个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使用边框我们做了一个综合的例子:

    <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的布局功能 。

  • 相关阅读:
    Gridview如何用自定义按钮进行编辑和提交修改
    winform多线程中给datagridview绑定数据源
    DevExpress控件WebchartControl的学习记录
    datagridview右键选中单元格并获取到焦点
    asp.net局部页面打印,以及如何去掉打印时自动保留的URL地址(页眉页脚)
    GridView如何实现点击某行的指定列弹出新窗体
    C# Color Font 与String之间的转换
    推荐一款 asp.net js日历控件
    js浮点运算替代函数
    VSeWss 1.3 CTP 安装后出现错误
  • 原文地址:https://www.cnblogs.com/raphael5200/p/5114904.html
Copyright © 2011-2022 走看看