[Silverlight]关于对Canvas.ZIndex的认识误区

对Canvas.ZIndex,MSDN的解释是:获取或设置 Canvas 中对象的 z 顺序呈现行为。

并附有以下示例代码:

<Grid x:Name="LayoutRoot" Background="White">
<Canvas>
<Ellipse
Canvas.ZIndex="3"
Canvas.Left
="5" Canvas.Top="5"
Height
="200" Width="200"
Stroke
="Black" StrokeThickness="10" Fill="Silver"/>

<Ellipse
Canvas.ZIndex="2"
Canvas.Left
="50" Canvas.Top="50"
Height
="200" Width="200"
Stroke
="Black" StrokeThickness="10" Fill="DeepSkyBlue"/>

<Ellipse
Canvas.ZIndex="1"
Canvas.Left
="95" Canvas.Top="95"
Height
="200" Width="200"
Stroke
="Black" StrokeThickness="10" Fill="Lime"/>

</Canvas>
</Grid>


注意:本示例使用了Canvas布局对象

我不禁要问:我平时根本不用Canvas布局,基本都是Grid,如何实现Z序的排列呢?

今天突然发现:还是使用Canvas.ZIndex属性,也就是说用Grid布局,也可以用此属性来实现叠放,不必再套一个Canvas的外衣。让我们修改代码:

    <Grid x:Name="LayoutRoot2" Background="White">

<Ellipse
Canvas.ZIndex="3"
Canvas.Left
="50" Canvas.Top="50"
Height
="200" Width="200"
Stroke
="Black" StrokeThickness="10" Fill="Silver" Margin="-9,-9,127,41"/>

<Ellipse
Canvas.ZIndex="2"
Canvas.Left
="50" Canvas.Top="50"
Height
="200" Width="200"
Stroke
="Black" StrokeThickness="10" Fill="DeepSkyBlue" Margin="25,10,93,22"/>

<Ellipse
Canvas.ZIndex="1"
Canvas.Left
="50" Canvas.Top="50"
Height
="200" Width="200"
Stroke
="Black" StrokeThickness="10" Fill="Lime" Margin="65,32,53,0"/>

</Grid>

我们去掉了Canvas布局元素,得到的结果:

这就是附加属性的特别之处可以被附加到任何元素上至于有没有用,要根据具体情况具体分析了

注意到了吗?我特意设置了Ellipse的Canvas.Left="50" Canvas.Top="50",但是Left和Top并不起作用。

 

Silverlight打印全套解决方案--支持打印预览、页面设置(横向纵向,页边距,纸张大小、字体大小)、自动分页和多页连续打印

转载于:https://www.cnblogs.com/slmk/archive/2011/11/07/2238832.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值