WPF图形绘制:形状、变换与画笔的深入解析
1. Viewbox的工作原理
Viewbox要实现其缩放功能,需要确定两方面信息:内容的常规大小(即不在Viewbox中的大小)和期望的新大小。新大小的确定相对简单,Viewbox会根据其 Stretch 属性为内部内容提供可用的全部空间,也就是说,Viewbox越大,内容也就越大。
而内容的常规大小则隐含在嵌套内容的定义方式中。例如,若为 Canvas 明确指定了200×150单位的大小,Viewbox就会以此为起点进行图像缩放。像椭圆初始宽度为100单位,它会占据 Canvas 绘图空间的一半,当 Canvas 变大时,Viewbox会保持这种比例关系,椭圆依然占据可用空间的一半。
但如果移除 Canvas 的 Width 和 Height 属性, Canvas 的大小将变为0×0单位,此时Viewbox无法对其进行缩放,嵌套内容也就不会显示。不过,若单独使用 Canvas ,即使其大小为0×0,只要 Canvas.ClipToBounds 属性未设置为 true ,形状仍可绘制在 Canvas 区域之外,而Viewbox对这种情况的容忍度较低。
若将 Canvas 置于按比例缩放的 Grid 单元
超级会员免费看
订阅专栏 解锁全文
381

被折叠的 条评论
为什么被折叠?



