2011-01-29 8 views
6

単純なPathGeometryオブジェクトで奇妙なエラーが発生しましたが、わかりません。なぜこれがうまくいかないのか誰かが私に説明することができたら、私はそれを感謝します。ここでWP7 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> 

データおよび図性質の文字列が同一である、まだ後者の例では、例外が生じる:

無効な属性値M 8,4 L 12,12 4,12 8,4 Z。

私が最終的にやりたいことは、PathGeometryをResourceDictionaryに入れて{StaticResource}として参照することです。これにより、シェイプを再利用できるようになります。

編集:

私のソリューションは、代わりにの代わりに文字列リソースを参照するには、StaticResourceとPathGeometryを参照しようとしていました。私は、パスマークアップ構文を伝えることができるものから、

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

答えて

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> 

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

+0

これは実際にwp7で動作します!残念ながら冗長ですが、受け入れ可能な選択肢です。ありがとう、トン。 –

+0

残念ながらPath.DataのPathGeometryを参照しても機能しないので、ジオメトリを複製することができません: - /(例:) –

+0

Ok M 8,4 L 12 12 4 12 8 4 Z ... ugh。文字列リソースを作成してバインドするだけです。 –