如何在 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" />

基本上:

  1. M向下移动 100 像素
  2. v垂直线向上 50 px
  3. h水平线 100 px
  4. arc 半径为 10 像素(有一些魔法;阅读文档 ;-))
  5. h100 像素的水平线
  6. v50 像素的垂直线
  7. **z*(自动补全路径)