2012-01-07 5 views
0

私はコンテンツプレゼンターがテンプレート付きの親からのシェイプへのコンテンツバインディングを持っています。形状が楕円の場合、コンテンツプレゼンターは楕円を表示しますが、シェイプをパスに変更してデータプロパティを楕円のジオメトリに設定すると、何も表示されません。楕円形状と同じようにストロークを設定します。ここで私は、パスを構築しています方法です:パスが表示されない

 Shape = new Path(); 
     Shape.Data = new EllipseGeometry(); 
     Shape.Fill = Brushes.Transparent; 
     Shape.Stroke = Brushes.CadetBlue; 

しかし、私はこのそれは作業を行い(形状と仮定するとタイプ楕円のである)と交換する場合:

 Shape = new Ellipse(); 
     Shape.Fill = Brushes.Transparent; 
     Shape.Stroke = Brushes.CadetBlue; 

私が使用したい理由パスとしてジオメトリをデータとして使用しているのは、シェイプの交差をテストしたいからですが、シェイプオブジェクトのジオメトリを取得する方法がわかりません。シェイプがPathの場合、Shape.Data 。

ご協力いただければ幸いです。

+0

Geometry.Parse(「ポイントの値」)を試して、戻り値をShape.Dataに割り当てることができます – deathrace

答えて

0

EllipseGeometryは、Ellipseの形状とは少し異なる動作をします。そのサイズはとRadiusYのプロパティで定義されます。デフォルトでは0であり、何も描画されません。しかし

Shape.Data = new EllipseGeometry { RadiusX = 1.0, RadiusY = 1.0 }; 

あなたEllipseがするように、これはおそらくまだ表示されません、次のようにあなたは、これらを設定することができます。 Ellipseのデフォルト値はStretchで、デフォルト値はStretch.Fillですが、Pathの値はStretch.Noneです。あなたはこれを変更した場合、彼らは同じになります。

Shape.Stretch = Stretch.Fill; 

をあなたは、サイズにPathEllipseGeometryの他のプロパティで遊んで配向し、それを正しく見つけることができます。

関連する問題