Как нарисовать прямоугольник на холсте WPF
Я пытаюсь нарисовать a 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);
Почему этот код не рисовал прямоугольник?
Холст определяется в ассоциированном XAML следующим образом:
<Canvas Height="200" Width="200" Name="front_canvas" Grid.Row="1" Grid.Column="0">
</Canvas>
Холст хорошо выглядит. Я могу сказать из-за пробела, который он оставляет в сетке макета.
Ответы
Ответ 1
Это должно сделать ваш прямоугольник как черный квадрат 200x200, если front_canvas
отображается правильно.
Почему этот код не рисовал прямоугольник?
Основными причинами этого не было бы:
-
front_canvas
не отображается
-
front_canvas
отсутствует в визуальном дереве и отображается правильно
- Некоторые другие
FrameworkElement
скрывают front_canvas
, по крайней мере, в верхнем левом углу.
- В холсте есть еще один объект в более высоком порядке z.
Обратите внимание, что обычно вы также хотите установить StrokeThickness
, если хотите видеть Stroke
, который вы указываете.
Ответ 2
Чтобы просмотреть прямоугольник, вы должны указать StrokeThickness
и установить любое значение Integer
больше нуля:
rect.StrokeThickness=2;