2012-01-29 2 views
0

を見ることはできませんが、これはsrokeは私がしようとした幅と高さに追加されているので、私は塗りつぶしではなく、ストロークを参照してくださいDefiningGeometryストローク私は形から派生

protected override Geometry DefiningGeometry 
    { 
     get 
     { 
      topLeft.X = Math.Min(Start.X, End.X); 
      topLeft.Y = Math.Min(Start.Y, End.Y); 
      width.X = Math.Abs(Start.X - End.X); 
      width.Y = Math.Abs(Start.Y - End.Y); 
      rectBounds.X = topLeft.X; 
      rectBounds.Y = topLeft.Y; 
      rectBounds.Width = width.X; 
      rectBounds.Height = width.Y; 
      rectGeo.Rect = rectBounds; 
      return rectGeo; 
     } 
    } 

には何かということです

Width = width.X + StrokeThickness; 
//same for height. 

しかし、何も描かれていない、私は間違って何をしているのか知っていますか?ところで、背景とストロークブラシは異なる色です。何らかの理由で

+0

ストロークブラシがdiffであることを確認してから、bgとdiffしてからシェイプを確認してください –

答えて

0

ストロークは常にフィルの上にあります。非常に薄いストロークは当然目に見えなくなる傾向がありますが、1.0を下回る厚さはまったく問題ありません。

Shapeのジオメトリを正確に塗りつぶします。ストロークはジオメトリの輪郭をレンダリングします。輪郭の半分は内側にあり、輪郭の半分は外側にあります。

Shockの幅にStrokeThicknessを追加します(これは、とにかく四角形を想定している場合にのみ機能します)。 Shapeのプロパティの動作については、MSDNを参照してください。

シンプルな幾何学的オブジェクトを作成するためにShapeからを派生させないでください。あらかじめ定義されたRectangle、Ellipse、Lineなどを使用します。さらに複雑なジオメトリにはPathを使用し、Path.Dataを設定します。

また、Shapes and Basic Drawing in WPF Overviewと、MSDNのGeometry Overviewを参照してください。

0

StrokeThicknessは(私はFillブラシがそれをカバーしている推測しています)1よりも大きくする必要がある、またはFillプロパティを設定し、StrokeThickness 1作品はありません。

関連する問題