6

単純な PathGeometry オブジェクトで奇妙なエラーが発生しましたが、それを理解できないようです。これが機能しない理由を誰かが説明してくれれば幸いです。

小さな三角形を描画する作業パスの例を次に示します。

<Path Data="M 8,4 L 12,12 4,12 8,4 Z" Stroke="White" />

これは、私にとってはうまくいかないように見えるパスの例です。

<Path Stroke="White">
    <Path.Data>
        <PathGeometry Figures="M 8,4 L 12,12 4,12 8,4 Z" />
    </Path.Data>
</Path>

Data プロパティと Figure プロパティの文字列は同じですが、後者の例では例外が発生します。

プロパティ フィギュアの無効な属性値 M 8,4 L 12,12 4,12 8,4 Z。

最終的にやりたいことは、PathGeometry を ResourceDictionary に入れ、それを {StaticResource} として参照して、図形を再利用できるようにすることです。

編集:

私の解決策は、PathGeometry を StaticResource で参照しようとする代わりに、代わりに文字列リソースを参照することでした。

<sys:String x:Key="TriangleShape">M 8,4 L 12,12 4,12 8,4 Z</sys:String>
...
<Path Data={StaticResource TriangleShape}" />
4

1 に答える 1

4

私が知る限り、 Path.Dataで使用されるパス マークアップ構文は、PathGeometry ではサポートされていません。PathGeometry.Figuresプロパティは、代わりに PathFigure オブジェクトのコレクションである必要があります。

上記の形状をこのように指定するには、次のようにします。

    <Path Stroke="White">
        <Path.Data>
            <PathGeometry>
                <PathGeometry.Figures>
                    <PathFigure StartPoint="8,4">
                        <PathFigure.Segments>
                            <LineSegment Point="12,12" />
                            <LineSegment Point="4,12" />
                            <LineSegment Point="8,4" />
                        </PathFigure.Segments>
                    </PathFigure>
                </PathGeometry.Figures>
            </PathGeometry> 
        </Path.Data>
    </Path>

免責事項: これは WP7 では試していません。PC の Silverlight でのみ試しました。

于 2011-01-29T18:34:23.467 に答える