增加StrokeThickness但保持Path的尺寸

dev*_*xer 7 silverlight wpf geometry xaml

我有一个Path通常具有1的StrokeThickness.在某些情况下,它需要具有10的StrokeThickness.当我增加笔划厚度时,我不希望该路径占用任何额外的空间.

默认情况下,仅增加StrokeThickness会增加路径的渲染大小.所以你得到这样的东西(蓝色轮廓延伸到黑色边界之外):

中风扩展到原始的路径边界

这就是我想要实现的目标(蓝色轮廓保持在黑色边界内):

中风完全在路径的原始边界内

我可以想出两种数学方法来补偿增加的StrokeWidth:

  1. 手动调整三角形的内部点.
  2. 在路径的几何上使用ScaleTransform.

这些都有些问题/复杂.有没有更简单的方法?

Cle*_*ens 24

您可以按照自己的几何图形剪切路径,如下所示:

<Path ... Clip="{Binding Data, RelativeSource={RelativeSource Self}}"/>
Run Code Online (Sandbox Code Playgroud)

但是你需要加倍StrokeThickness,因为只有一半的笔画是可见的.