Как получить 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
Надеюсь, поможет.
Игорь.