Я пытаюсь нарисовать фигуру примерно так:
Мне нужен уникальный элемент для каждого сегмента дуги, на котором я могу обрабатывать события и перекрашивать по мере необходимости. Я немного не уверен, как создать правильную геометрию в WPF. Я могу легко вычислить четыре точки для каждого сегмента дуги, исходя из радиуса кругов и угла от центра. Используя радиус 100 для внешнего круга и 50 для внутреннего, четыре точки красного цвета (по часовой стрелке от верхнего левого угла с началом координат вверху круга):
0,0
70,30
35,65
0,50
Используя эти точки, я создаю простой путь для рисования сегмента:
<Path Stroke="Black" Fill="Black" StrokeThickness="1" >
<Path.Data>
<PathGeometry>
<PathGeometry.Figures>
<PathFigure StartPoint="0,0">
<PathFigure.Segments>
<ArcSegment Point="70,30" />
<LineSegment Point="35,65" />
<ArcSegment Point="0,50" />
</PathFigure.Segments>
</PathFigure>
</PathGeometry.Figures>
</PathGeometry>
</Path.Data>
</Path>
Но это просто рисует трапецию с прямыми линиями. Я знаю, что могу изменить размер ArcSegments, но не могу понять, как это влияет на кривизну. Я хочу, чтобы дуги следовали за основным кругом, но я не знаю, как это выразить. Как сделать дуги правильной кривизны?
Кроме того, как выразить и добавить пути в коде C # позади, а не в xaml?
PathSegmentCollection
, чтобы он отображался с обводкой, чтобы я мог иметь свою форму с контуром. Не знаю почему, но это сработало, так что я в порядке. 17.05.2017