Практическое руководство. Создание объединенных геометрических объектов

В этом примере показано, как объединять геометрические объекты. Чтобы объединить два геометрических объекта, используйте объект CombinedGeometry. Задайте его свойства Geometry1 и Geometry2, указав два геометрических объекта, которые нужно объединить, и задайте свойству GeometryCombineMode, определяющему способ объединения геометрических объектов, значение Union, Intersect, Exclude или Xor.

Чтобы создать составной геометрический объект из двух и более геометрических объектов, используйте GeometryGroup.

Пример

В следующем примере CombinedGeometry определен способом объединения Exclude. Geometry1 и Geometry2 определяются как круги одинакового радиуса, но с центром, смещенным на 50.

<Path Stroke="Black" StrokeThickness="1" Fill="#CCCCFF">
  <Path.Data>
    
    <!-- Combines two geometries using the exclude combine mode. -->
    <CombinedGeometry GeometryCombineMode="Exclude">
      <CombinedGeometry.Geometry1>
        <EllipseGeometry RadiusX="50" RadiusY="50" Center="75,75" />
      </CombinedGeometry.Geometry1>
      <CombinedGeometry.Geometry2>
        <EllipseGeometry RadiusX="50" RadiusY="50" Center="125,75" />
      </CombinedGeometry.Geometry2>
    </CombinedGeometry>
  </Path.Data>
</Path>

Results of the Exclude combine mode
Геометрические объекты, объединенные способом «Исключение»

В следующей разметке CombinedGeometry определен способом объединения Intersect. Geometry1 и Geometry2 определяются как круги одинакового радиуса, но с центром, смещенным на 50.

<Path Stroke="Black" StrokeThickness="1" Fill="#CCCCFF">
  <Path.Data>
    
    <!-- Combines two geometries using the intersect combine mode. -->
    <CombinedGeometry GeometryCombineMode="Intersect">
      <CombinedGeometry.Geometry1>
        <EllipseGeometry RadiusX="50" RadiusY="50" Center="75,75" />
      </CombinedGeometry.Geometry1>
      <CombinedGeometry.Geometry2>
        <EllipseGeometry RadiusX="50" RadiusY="50" Center="125,75" />
      </CombinedGeometry.Geometry2>
    </CombinedGeometry>
  </Path.Data>
</Path>

Results of the Intersect combine mode
Геометрические объекты, объединенные способом «Объединение по пересечению»

В следующей разметке CombinedGeometry определен способом объединения Union. Geometry1 и Geometry2 определяются как круги одинакового радиуса, но с центром, смещенным на 50.

<Path Stroke="Black" StrokeThickness="1" Fill="#CCCCFF">
  <Path.Data>
    
    <!-- Combines two geometries using the union combine mode. -->
    <CombinedGeometry GeometryCombineMode="Union">
      <CombinedGeometry.Geometry1>
        <EllipseGeometry RadiusX="50" RadiusY="50" Center="75,75" />
      </CombinedGeometry.Geometry1>
      <CombinedGeometry.Geometry2>
        <EllipseGeometry RadiusX="50" RadiusY="50" Center="125,75" />
      </CombinedGeometry.Geometry2>
    </CombinedGeometry>
  </Path.Data>
</Path>

Results of the Union combine mode
Геометрические объекты, объединенные способом «Объединение»

В следующей разметке CombinedGeometry определен способом объединения Xor. Geometry1 и Geometry2 определяются как круги одинакового радиуса, но с центром, смещенным на 50.

<Path Stroke="Black" StrokeThickness="1" Fill="#CCCCFF">
  <Path.Data>
    
    <!-- Combines two geometries using the XOR combine mode. -->
    <CombinedGeometry GeometryCombineMode="Xor">
      <CombinedGeometry.Geometry1>
        <EllipseGeometry RadiusX="50" RadiusY="50" Center="75,75" />
      </CombinedGeometry.Geometry1>
      <CombinedGeometry.Geometry2>
        <EllipseGeometry RadiusX="50" RadiusY="50" Center="125,75" />
      </CombinedGeometry.Geometry2>
    </CombinedGeometry>
  </Path.Data>
</Path>

Results of the Xor combine mode
Геометрические объекты, объединенные способом «Исключающее или»