Canvas控件提供一个画面用于在画布的特定坐标处显示子元素,属于绝对定位,相当于html中的div,Canvas.Top和Canvas.Left属性只有Canvas控件的子元素(并且是这个子元素紧挨着Canvas)用时才有效果,如下代码
<Canvas Background=”Red” >
<Rectangle Fill=”Green” Width=”100″ Height=”100″ Canvas.Top=”20″ Canvas.Left=”20″ > </Rectangle>
</Canvas>
运行的效果是
而如果父控件换成StackPanel
<StackPanel Background=”Red” >
<Rectangle Fill=”Green” Width=”100″ Height=”100″ Canvas.Top=”20″ Canvas.Left=”20″ > </Rectangle>
</StackPanel>
运行的效果如下
可以看出和第一次是不一样的效果,矩形跑到顶部中间去了,Canvas.Top和Canvas.Left并没有起作用
如果父控件换成Grid后运行的效果如下
矩形跑的页面的中心了,可以看出Grid表格布局特点,如果没有指定行列,默认是放到中间的有多个元素的会重叠的。
如图
以上只是本人做个简单例子测试下,由于刚接触sl,许多东西还是知道甚少,如有问题,欢迎大家指正。
转载于:https://www.cnblogs.com/majunfeng/archive/2011/08/07/3933832.html