原文:
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可以使自动布局控件调整大小(见下一节)。