J'essaie de dessiner un Rectangle
sur un Canvas
comme suit:
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);
Pourquoi ce code ne dessinerait-il pas un rectangle?
Le canevas est défini dans le XAML associé comme suit:
<Canvas Height="200" Width="200" Name="front_canvas" Grid.Row="1" Grid.Column="0">
</Canvas>
La toile se montre bien. Je peux le dire à cause de l'écart qu'il laisse dans la grille de mise en page.
Cela devrait dessiner votre rectangle comme un carré noir de 200x200, à condition que front_canvas
s'affiche correctement.
Pourquoi ce code ne dessinerait-il pas un rectangle?
Les principales raisons pour lesquelles cela ne serait pas tiré sont:
front_canvas
n'est pas visiblefront_canvas
n'est pas dans l'arborescence visuelle et s'affiche correctementFrameworkElement
obscurcit front_canvas
, au moins dans le coin supérieur gauche.Notez que vous souhaitez généralement également définir StrokeThickness
si vous souhaitez voir le Stroke
que vous spécifiez.
Pour afficher le rectangle, vous devez spécifier StrokeThickness
et définir une valeur Integer
supérieure à zéro:
rect.StrokeThickness=2;