Построить форму в виде кольца на C # - PullRequest
1 голос
/ 13 ноября 2010

Мне нужен метод для построения кольца (круг, из которого вырезать круг меньшего радиуса) и вернуть его как System.Windows.Shapes.Shape.Могу ли я сделать это с Path?Может быть, существуют другие способы?

1 Ответ

7 голосов
/ 13 ноября 2010

Не могли бы вы использовать эллипс с очень толстым штрихом, но прозрачной заливкой? По общему признанию это не работает, если вы хотите, чтобы края самого кольца были другого цвета, чем заполненная часть ...

В качестве альтернативы я бы начал смотреть на Path, содержащий два EllipseGeometry элемента в GeometryGroup с FillRule из EvenOdd или CombineGeometry с GeometryCombineMode из Exclude. Например:

<Path Stroke="Black" StrokeThickness="1" Fill="#CCCCFF">
  <Path.Data>
    <CombinedGeometry GeometryCombineMode="Exclude">
      <CombinedGeometry.Geometry1>
        <EllipseGeometry RadiusX="100" RadiusY="100" Center="125,125" />
      </CombinedGeometry.Geometry1>
      <CombinedGeometry.Geometry2>
        <EllipseGeometry RadiusX="50" RadiusY="50" Center="125,125" />
      </CombinedGeometry.Geometry2>
    </CombinedGeometry>
  </Path.Data>
</Path>

Производит это:

alt text

Правильно ли я сказал, что это то, что вы были после?

...