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,許多東西還是知道甚少,如有問題,歡迎大家指正。