我正在尝试在 Canvas
上绘制一个 Rectangle
,如下所示:
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);
为什么这段代码不绘制一个矩形?
Canvas 在关联的 XAML 中定义如下:
<Canvas Height="200" Width="200" Name="front_canvas" Grid.Row="1" Grid.Column="0">
</Canvas>
Canvas 显示正常。我可以分辨出来,因为它在布局网格中留下了空隙。
最佳答案
如果 front_canvas
正确显示,这应该将您的矩形绘制为 200x200 的黑色正方形。
Why would this code not draw a rectangle?
这不会绘制的主要原因是:
front_canvas
不可见front_canvas
不在可视化树中并且正确显示- 其他一些
FrameworkElement
遮挡了front_canvas
,至少在左上角。 - Canvas 中还有另一个对象处于更高的 z 顺序。
请注意,您通常还想设置 StrokeThickness
如果您想查看您指定的 Stroke
。
关于c# - 如何在 WPF Canvas 上绘制矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14782158/