2012-05-15 21 views
5

我有一个Path,其通常具有StrokeThickness为1.在某些情况下,它需要具有10的StrokeThickness。当我增加笔划粗细时,我不希望路径采取任何额外的空间。增加StrokeThickness但保持路径的尺寸

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

Stroke expands beyond original boundary of path

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

Stroke is entirely inside original boundary of path

我能想到的两个数学方式来弥补增加的StrokeWidth:

  1. 手动adjus t向内的三角形的点。
  2. 在路径的几何体上使用ScaleTransform。

这两个都会有些问题/复杂。有更容易的方法吗?

回答

18

您可以通过其自身的几何形状这样夹的路径:

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

,但那么你就需要加倍的StrokeThickness,因为只有行程的一半是可见的。

+2

+1,非常聪明! – devuxer

+0

谢谢克莱门斯,如果我需要反面呢?只保留外部中风,有没有办法排除自我几何? – superware

+0

请参阅https://stackoverflow.com/questions/48563157/clip-inverted-own-geometry – superware

0

一时心血来潮我设置StrokeThickness = -1对我的矩形,它做了什么我想它:行程那张内部矩形的,而不是在外面

+2

因此,要解决OP的具体情况,它应该在-1和-10之间变化? –

相关问题