WPF笔记(2.5 Canvas)——Layout

时间:2024-01-20 11:31:21

原文:WPF笔记(2.5 Canvas)——Layout

Canvas是最精确的布局容器——绝对定位,此书作者不建议使用,以为控件的大小一般会随着内部字体图片的动态生成而自动变化,所以使用前三种布局是最好的选择,在这一点上,我也持同样意见。

Canvas使用Top/Bottom属性控制距离顶部/底部的高度;使用Left/Right属性控制距离左/右的距离。有趣的是,调整Form的大小,第二个TextBlock的位置会相应变化,但和底部以及右边的距离是不变的,代码见下:

WPF笔记(2.5 Canvas)——Layout<Canvas Background="Yellow">
WPF笔记(2.5 Canvas)——Layout  <TextBlock Canvas.Left="10" Canvas.Top="20">Hello</TextBlock>
WPF笔记(2.5 Canvas)——Layout  <TextBlock Canvas.Right="10" Canvas.Bottom="20">world!</TextBlock>
WPF笔记(2.5 Canvas)——Layout</Canvas>

此外,Canvas不会自动裁减超过自身范围的内容,即多出的内容会显示在Canvas外面,那是因为默认ClipToBounds="False";如果设置ClipToBounds="True",则会裁剪多于内容。

最后,联合使用ViewBox可以使自动布局控件调整大小(见下一节)。