如何在WPF画布上绘制矩形

She*_*ena 13 c# wpf canvas

我想画Rectangle上一个Canvas如下:

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);
Run Code Online (Sandbox Code Playgroud)

为什么这段代码不能绘制矩形?

画布在关联的XAML中定义如下:

<Canvas Height="200" Width="200" Name="front_canvas" Grid.Row="1" Grid.Column="0">      
</Canvas>
Run Code Online (Sandbox Code Playgroud)

画布显示很好.我可以告诉它,因为它在布局网格中留下了差距.

Ree*_*sey 9

这应该将您的矩形绘制为200x200黑色方块,提供front_canvas正确显示.

为什么这段代码不能绘制矩形?

这不会得出的主要原因是:

  • front_canvas 不可见
  • front_canvas 不在可视树中并正确显示
  • 其他一些FrameworkElement是模糊的front_canvas,至少是左上角.
  • 画布中的另一个对象是更高的z顺序.

请注意,您通常还想设置StrokeThickness是否要查看Stroke指定的内容.