Maintenant, je veux dessiner un rectangle sur le canevas en cliquant sur la souris Événement. Voici mon code:Dessiner un rectangle et le mettre à jour à chaque clic de la souris
protected void imageIR_MouseClick(object sender, System.Windows.Input.MouseEventArgs e)
{
...
System.Windows.Point startPoint = e.GetPosition(canvas1);
rect = new System.Windows.Shapes.Rectangle
{
Stroke = System.Windows.Media.Brushes.LightBlue,
StrokeThickness = 10
};
Canvas.SetLeft(rect, startPoint.X);
Canvas.SetTop(rect, startPoint.Y);
canvas1.Children.Add(rect);
}
private void Canvas_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
{
rect = null;
}
Il fonctionne très bien chaque fois que je clique sur la souris, mais pourquoi est l'ancien rectangle encore sur la toile quand je redessine le nouveau? Qu'est-ce que j'ai fait de mal?
EDIT Maintenant, il est correct, je ne ai pas besoin Canvas_MouseMove plus et au lieu:
protected void imageIR_MouseClick(object sender, System.Windows.Input.MouseEventArgs e)
{
...
canvas1.Children.Remove(rect);
System.Windows.Point startPoint = e.GetPosition(canvas1);
rect = new System.Windows.Shapes.Rectangle
{
Stroke = System.Windows.Media.Brushes.LightBlue,
StrokeThickness = 10
};
Canvas.SetLeft(rect, startPoint.X);
Canvas.SetTop(rect, startPoint.Y);
canvas1.Children.Add(rect);
}
Vous définissez 'rect = null', mais vous ne supprimez pas l'ancien rectangle de Canvas. – Vladimir