Подтвердить что ты не робот

Как нарисовать прямоугольник на холсте 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>

Холст хорошо выглядит. Я могу сказать из-за пробела, который он оставляет в сетке макета.

4b9b3361

Ответ 1

Это должно сделать ваш прямоугольник как черный квадрат 200x200, если front_canvas отображается правильно.

Почему этот код не рисовал прямоугольник?

Основными причинами этого не было бы:

  • front_canvas не отображается
  • front_canvas отсутствует в визуальном дереве и отображается правильно
  • Некоторые другие FrameworkElement скрывают front_canvas, по крайней мере, в верхнем левом углу.
  • В холсте есть еще один объект в более высоком порядке z.

Обратите внимание, что обычно вы также хотите установить StrokeThickness, если хотите видеть Stroke, который вы указываете.

Ответ 2

Чтобы просмотреть прямоугольник, вы должны указать StrokeThickness и установить любое значение Integer больше нуля:

rect.StrokeThickness=2;