17

私は次のようにに描画しようとしRectangleCanvasいます:

System.Windows.Shapes.Rectangle rect;
rect = new System.Windows.Shapes.Rectangle();
rect.Stroke = new SolidColorBrush(Colors.Black);
rect.Fill = new SolidColorBrush(Colors.Black);
rect.Width=200;
rect.Height=200;
Canvas.SetLeft(rect,0);
Canvas.SetTop(rect,0);
front_canvas.Children.Add(rect);

このコードが長方形を描画しないのはなぜですか?

キャンバスは、関連するXAMLで次のように定義されます。

<Canvas Height="200" Width="200" Name="front_canvas" Grid.Row="1" Grid.Column="0">      
</Canvas>

キャンバスはきれいに表示されます。レイアウトグリッドにギャップが残っているため、わかります。

4

2 に答える 2

9

これにより、長方形が200x200の黒い正方形として描画されます。ただし、front_canvas正しく表示されている必要があります。

このコードが長方形を描画しないのはなぜですか?

これが描画されない主な理由は次のとおりです。

  • front_canvas見えない
  • front_canvasビジュアルツリーになく、正しく表示されている
  • 他のいくつかは、少なくとも左上隅をFrameworkElement覆い隠しています。front_canvas
  • キャンバスには、より高いzオーダーの別のオブジェクトがあります。

StrokeThickness指定したものを表示したい場合は、通常、設定する必要があることに注意してくださいStroke

于 2013-02-08T22:13:07.573 に答える
2

長方形を表示するには、を指定し、ゼロより大きい値StrokeThicknessを設定する必要があります。Integer

rect.StrokeThickness=2;
于 2013-07-11T12:54:57.747 に答える