8

通常、StrokeThicknessが1のを持ってPathいます。特定の状況では、StrokeThicknessを10にする必要があります。ストロークの太さを増やすときに、パスに追加のスペースをとらせたくありません。

デフォルトでは、StrokeThicknessを増やすだけで、パスのレンダリングサイズが増えます。したがって、次のようになります(青い輪郭が黒い境界を超えて伸びています):

ストロークがパスの元の境界を超えて拡大する

これは私が達成しようとしていることです(青い輪郭は黒い境界内にとどまります):

ストロークは完全にパスの元の境界の内側にあります

StrokeWidthの増加を補うための2つの数学的な方法を考えることができます。

  1. 三角形のポイントを手動で内側に調整します。
  2. パスのジオメトリでScaleTransformを使用します。

これらは両方ともやや問題がある/複雑です。もっと簡単な方法はありますか?

4

2 に答える 2

27

次のように、独自のジオメトリでパスをクリップできます。

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

ただし、ストロークの半分しか表示されないため、StrokeThickness を 2 倍にする必要があります。

于 2012-05-15T05:27:28.987 に答える
0

気まぐれで、Rectangle にStrokeThickness = -1を設定すると、まさに私が望んでいたことを実行しました。ストロークは、Rectangle の外側ではなく内側に移動します。

于 2015-10-30T18:14:28.103 に答える