8

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

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

笔划超出路径的原始边界

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

笔划完全在路径的原始边界内

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

  1. 手动向内调整三角形的点。
  2. 对路径的几何图形使用 ScaleTransform。

这两者都会有些问题/复杂。有没有更简单的方法?

4

2 回答 2

27

你可以像这样通过它自己的几何来剪辑路径:

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

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

于 2012-05-15T05:27:28.987 回答
0

一时兴起,我在我的 Rectangle 上设置了StrokeThickness = -1,它完全按照我想要的方式进行:笔划位于 Rectangle 的内部而不是外部。

于 2015-10-30T18:14:28.103 回答