代码之家  ›  专栏  ›  技术社区  ›  Eric Smith

使用WPF对象在另一个对象中“打孔”?

  •  2
  • Eric Smith  · 技术社区  · 17 年前

    我有一个椭圆,它只是一个圆。我的问题是我想从大圆圈的中间切出一个圆形的洞,但似乎什么都不管用。我试过不透明口罩,但都没用。

    使事情进一步复杂化的是,大圆圈有一种阴影效应。但是因为这个圆是稍微透明的,所以你可以看到它后面有一个很大的阴影。这并不是实体模型的真实样子,我想知道是否有办法让阴影只出现在圆的边缘,不管所说的圆有多透明。

    2 回复  |  直到 17 年前
        1
  •  5
  •   Peter Booster    17 年前

    例如:

    <Canvas>
    <Path Stroke="Black">
      <Path.Data>
        <CombinedGeometry GeometryCombineMode="Exclude">
          <CombinedGeometry.Geometry1>
            <EllipseGeometry Center="100,100" RadiusX="100" RadiusY="100"></EllipseGeometry>
          </CombinedGeometry.Geometry1>
          <CombinedGeometry.Geometry2>
            <EllipseGeometry Center="100,100" RadiusX="80" RadiusY="80"></EllipseGeometry>
          </CombinedGeometry.Geometry2>
        </CombinedGeometry>
      </Path.Data>
    </Path>
    </Canvas>
    

    对于阴影:这也应该解决,因为结果对象

        2
  •  1
  •   itowlson    17 年前

    不要使用椭圆,而是使用路径,并使用Exclude GeometryCombineMode使路径成为由两个椭圆组成的组合几何。

    推荐文章