Как получить Stream/PathGeometry, у которого контур геометрии "расширен" с помощью обводки Pen в WPF?

Это довольно сложно объяснить, поэтому я буду использовать изображение в качестве примера:
Я определил StreamGeometry (в коде).
Когда это нарисовано с DrawingContext.DrawGeometry используя как кисть для заливки, так и перо для обводки, геометрия "расширяется" за счет толщины ручки.
Теперь я пытаюсь найти, есть ли в WPF функция, которая может вернуть эту расширенную геометрию с твердым телом (в любом формате Geometry).

Пока я пытался Geometry.GetWidenedPathGeometry но это только возвращает геометрию, которая "обрисовывает в общих чертах" обводку Pen. У этого есть отверстие, где заполнение должно быть.

Я думаю, я могу использовать GetWidenedPathGeometry и сделать какой-то союз с оригинальной геометрией, "заполняя" дыру. Я просто хочу убедиться, что нет более простого или более эффективного (более быстрого) способа.
Также было бы предпочтительно, если геометрия может оставаться StreamGeometry, но GetWidenedPathGeometry превращает его в (каким-то образом искалеченный?) PathGeometry.

Спасибо за любой совет

1 ответ

Похоже, что получающаяся геометрия из GetWidenedPathGeometry содержит две фигуры, одну для внутреннего и другую для внешних контуров.

Что делать, если вы удалили внутренний?

Аналогичный сценарий есть в Книжном блоге Чарльза Петцольда: http://www.charlespetzold.com/blog/2008/04/Rounded-Graphics-in-WPF.html

Надеюсь, поможет.

Игорь.

Другие вопросы по тегам