1

IsFilled="False"PathGeometry で使用されているのと同等のものを見つけようとしていますが、 Path Mini用です。

左がPath Mini、右がPathGeometry

IsFilled="False"以下の 2 つのパスは、2 番目の にあるジオメトリを除いて同一であることがわかります<PathGeometry>.<PathGeometry.Figures>.<PathFigure>。これは望ましい動作ですが、パス ミニ (つまり、最初の ) に使用したいと思い<Path>ます。ドキュメントに目を通しましたが、Path Mini は図のコレクションではないように見えるため、何も見つけられないようです。

私が理解しているように、すべての形状/ジオメトリは実行時にパス ミニに変換されるため、コンパイルされた XAML を反映して、インタープリターが PathGeometry を使用してパス ミニにレンダリングする方法を確認する方法はありますか?

<Canvas Background="#FDB" Width="800" Height="600">

  <!-- this is the LEFT-HAND Path in the picture above -->
  <Path Canvas.Left="100" Canvas.Top="100"
     Stroke="#385D8A" StrokeThickness="2" StrokeLineJoin="Round" Fill="#4F81BD"
     Data="M0,0L102,0L102,102L0,102Z M46.15,49.01L-73.36,130.99L-96.42,-96.12L109.35,355.18">
  </Path>

  <!-- this is the RIGHT-HAND Path in the picture above -->
  <Path Canvas.Left="300" Canvas.Top="100" Stroke="#385D8A" StrokeThickness="2" StrokeLineJoin="Round" Fill="#4F81BD">
    <Path.Data>
      <GeometryGroup>
        <PathGeometry>
          <PathGeometry.Figures>
            <PathFigure StartPoint="0,0" IsClosed="True">
              <PathFigure.Segments>
                <LineSegment Point="102,0" />
                <LineSegment Point="102,102" />
                <LineSegment Point="0,102" />
              </PathFigure.Segments>
            </PathFigure>
          </PathGeometry.Figures>
        </PathGeometry>
        <PathGeometry>
          <PathGeometry.Figures>
            <PathFigure IsFilled="False" StartPoint="46.15,49.01">
              <PathFigure.Segments>
                <LineSegment Point="-73.36,130.99" />
                <LineSegment Point="-96.42,-96.12" />
                <LineSegment Point="109.35,355.18" />
              </PathFigure.Segments>
            </PathFigure>
          </PathGeometry.Figures>
        </PathGeometry>
      </GeometryGroup>
    </Path.Data>
  </Path>
</Canvas>
4

1 に答える 1

2

パスのミニ言語はアウトラインのみをサポートするため、ストロークを塗りつぶしに変換する必要があります。これは、1 ピクセル幅の線が必要で、留め継ぎやエンドキャップにあまりこだわらない場合は、自分で簡単に行うことができます。細い長方形を使用するだけです。最小数のポイントを使用し、交差を処理す​​る無限に狭いストロークの真の数学的「成長」は、かなり困難です。ただし、WPF レンダリング エンジンを使用してそれを行うことができる場合があります。

于 2011-02-17T22:59:00.743 に答える