Canvas是最精確的布局容器——絕對定位,此書作者不建議使用,以為控件的大小一般會隨著內部字 體圖片的動態生成而自動變化,所以使用前三種布局是最好的選擇,在這一點上,我也持同樣意見。
Canvas使用Top/Bottom屬性控制距離頂部/底部的高度;使用Left/Right屬性控制距離左/右的距離。 有趣的是,調整Form的大小,第二個TextBlock的位置會相應變化,但和底部以及右邊的距離是不變的, 代碼見下:
<Canvas Background="Yellow">
<TextBlock Canvas.Left="10" Canvas.Top="20">Hello</TextBlock>
<TextBlock Canvas.Right="10" Canvas.Bottom="20">world!</TextBlock>
</Canvas>
此外,Canvas不會自動裁減超過自身范圍的內容,即多出的內容會顯示在Canvas外面,那是因為默認 ClipToBounds="False";如果設置ClipToBounds="True",則會裁剪多於內容。
最後,聯合使用ViewBox可以使自動布局控件調整大小(見下一節)。