如何在 xaml 中的矩形内绘制圆孔
How to draw a circle hole inside a rectangle in xaml
我需要放一张图片作为整个页面的背景,然后在上面放一个有透明圆孔的矩形。示例结果如下。
更新
我找到了一些使用 Geometry.Combine 的解决方案,但这在 WP8 中不存在。通过这种方法,我可以绘制一个矩形和一个圆形,然后使用 GeometryCombineMode.Exclude 将两者结合起来。但是这个方法在WP8中好像没有。如何创建可以实现与 Geometry.Combine 类似的结果以在元素内创建一个洞?
您应该查看 Path
元素并了解路径数据的 mini-language。这是一个粗略的例子:
<Path x:Name="path" Data="M0,100 v-50 h100 a10,10,0,1,0,50,0 h100 v50 z" Fill="Gray" />
基本上:
- M向下移动 100 像素
- v垂直线向上 50 px
- h水平线 100 px
- arc 半径为 10 像素(有一些魔法;阅读文档 ;-))
- h100 像素的水平线
- v50 像素的垂直线
- **z*(自动补全路径)
我需要放一张图片作为整个页面的背景,然后在上面放一个有透明圆孔的矩形。示例结果如下。
更新
我找到了一些使用 Geometry.Combine 的解决方案,但这在 WP8 中不存在。通过这种方法,我可以绘制一个矩形和一个圆形,然后使用 GeometryCombineMode.Exclude 将两者结合起来。但是这个方法在WP8中好像没有。如何创建可以实现与 Geometry.Combine 类似的结果以在元素内创建一个洞?
您应该查看 Path
元素并了解路径数据的 mini-language。这是一个粗略的例子:
<Path x:Name="path" Data="M0,100 v-50 h100 a10,10,0,1,0,50,0 h100 v50 z" Fill="Gray" />
基本上:
- M向下移动 100 像素
- v垂直线向上 50 px
- h水平线 100 px
- arc 半径为 10 像素(有一些魔法;阅读文档 ;-))
- h100 像素的水平线
- v50 像素的垂直线
- **z*(自动补全路径)