Вопрос по silverlight, wpf, geometry, xaml – Увеличьте StrokeThickness, но сохраняйте размеры Path

6

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

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

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

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

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

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

Ваш Ответ

2   ответа
0

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

Чтобы решить конкретный случай ОП, он должен варьироваться от -1 до -10? Nathan Tuggy
23

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

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

+ 1, очень умный! devuxer
Спасибо, Клеменс, а что если мне нужно наоборот? чтобы сохранить только внешний штрих, есть ли способ исключить собственную геометрию? superware

Похожие вопросы