Wpf 增加冲程厚度,但保持路径尺寸

Wpf 增加冲程厚度,但保持路径尺寸,wpf,silverlight,xaml,geometry,Wpf,Silverlight,Xaml,Geometry,我有一个路径,它的冲程厚度通常为1。在某些情况下,它需要具有10的冲程厚度。当我增加笔划厚度时,我不希望路径占用任何额外的空间 默认情况下,仅增加StrokeThickness会增加路径的渲染大小。所以你会得到这样的结果(蓝色的轮廓超出了黑色的边界): 这就是我试图实现的目标(蓝色轮廓保持在黑色边界内): 我可以想出两种数学方法来补偿增加的冲程宽度: 手动向内调整三角形的点 在路径的几何图形上使用ScaleTransform 这两个方面都有点问题/复杂。有更简单的方法吗?您可以通过自己的几何

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

默认情况下,仅增加StrokeThickness会增加路径的渲染大小。所以你会得到这样的结果(蓝色的轮廓超出了黑色的边界):

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

我可以想出两种数学方法来补偿增加的冲程宽度:

  • 手动向内调整三角形的点
  • 在路径的几何图形上使用ScaleTransform

  • 这两个方面都有点问题/复杂。有更简单的方法吗?

    您可以通过自己的几何图形剪裁路径,如下所示:

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

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

    我一时兴起,在我的矩形上设置了StrokeThickness=-1,它完全按照我的要求做了:笔划在矩形的内侧,而不是外侧。

    所以要解决OP的具体情况,它应该在-1和-10之间变化?对我不起作用。StrokeThickness的-1和1给出了相同的结果,如果我需要相反的结果呢?要仅保留外部笔划,是否有方法排除自几何体?请参见