Увеличьте StrokeThickness, но сохраняйте размеры Path

У меня естьPath, который обычно имеет StrokeThickness, равный 1. При определенных обстоятельствах он должен иметь StrokeThickness, равный 10. Когда я увеличиваю толщину обводки, я не хочу, чтобы путь занимал дополнительное пространство.

По умолчанию, просто увеличение StrokeThickness увеличивает размер рендеринга пути. Таким образом, вы получите что-то вроде этого (синий контур выходит за черную границу):

Это то, чего я пытаюсь достичь (синий контур остается внутри черной границы):

Я могу придумать два математических способа компенсировать увеличение StrokeWidth:

Вручную отрегулируйте точки треугольника внутрь. Используйте преобразование ScaleTransform для геометрии пути.

И то и другое было бы несколько проблематично / сложно. Есть ли более простой способ?

Ответы на вопрос(2)

StrokeThickness = -1 на моем прямоугольнике, и он сделал именно то, что я хотел: удар идет на Внутри прямоугольника, а не снаружи.

 Nathan Tuggy31 окт. 2015 г., 05:13
Чтобы решить конкретный случай ОП, он должен варьироваться от -1 до -10?
Решение Вопроса

<Path ... Clip="{Binding Data, RelativeSource={RelativeSource Self}}"/>

но тогда вам нужно будет удвоить StrokeThickness, так как видна только половина удара.

 devuxer15 мая 2012 г., 07:35
+ 1, очень умный!
 superware01 февр. 2018 г., 13:24
Спасибо, Клеменс, а что если мне нужно наоборот? чтобы сохранить только внешний штрих, есть ли способ исключить собственную геометрию?

Ваш ответ на вопрос