【发布时间】:2009-10-20 11:08:18
【问题描述】:
我需要一种组合多个 EllipseGeometry 以在它们之间建立联合的方法,但 CombineGeometry 类只能组合 2 个几何。
理想的方法是拥有一个类似于 CombineGeometry 的类,它接受的不仅仅是 Geometry1 和 Geometry2 形状。
任何人都知道做出这种行为的对象吗?
【问题讨论】:
我需要一种组合多个 EllipseGeometry 以在它们之间建立联合的方法,但 CombineGeometry 类只能组合 2 个几何。
理想的方法是拥有一个类似于 CombineGeometry 的类,它接受的不仅仅是 Geometry1 和 Geometry2 形状。
任何人都知道做出这种行为的对象吗?
【问题讨论】:
EllipseGeometry 也是一个 Geometry,因此您可以像这样组合:
<CombinedGeometry GeometryCombineMode="Union">
<CombinedGeometry.Geometry1>
<EllipseGeometry RadiusX="70" RadiusY="30" Center="100,150" />
</CombinedGeometry.Geometry1>
<CombinedGeometry.Geometry2>
<EllipseGeometry RadiusX="70" RadiusY="30" Center="200,150" />
</CombinedGeometry.Geometry2>
</CombinedGeometry>
编辑 要组合三个或更多 EllipseGeometries,您可以使用此机制
<CombinedGeometry GeometryCombineMode="Union">
<CombinedGeometry.Geometry1>
<CombinedGeometry GeometryCombineMode="Union">
<CombinedGeometry.Geometry1>
<EllipseGeometry RadiusX="70" RadiusY="30" Center="100,150" />
</CombinedGeometry.Geometry1>
<CombinedGeometry.Geometry2>
<EllipseGeometry RadiusX="70" RadiusY="30" Center="200,150" />
</CombinedGeometry.Geometry2>
</CombinedGeometry>
</CombinedGeometry.Geometry1>
<CombinedGeometry.Geometry2>
<EllipseGeometry RadiusX="70" RadiusY="30" Center="100,150" />
</CombinedGeometry.Geometry2>
</CombinedGeometry>
您可以创建一个派生自 Geometry 的新类,并在其中包含 Geometry[] 并使用上述机制实现方法。
【讨论】: