[英]Draw rectangle and update it on every mouse click
現在我想在鼠標單擊事件上在畫布上繪制一個矩形。 這是我的代碼:
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;
}
每次單擊鼠標時它都能正常工作,但是為什么當我重新繪制新矩形時,舊矩形仍在畫布上? 我做錯了什么?
編輯現在是正確的,我不再需要 Canvas_MouseMove 而是:
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);
}
您正在致電:
rect = new System.Windows.Shapes.Rectangle(...);
然后:
canvas1.Children.Add(rect);
這會將另一個新的Rectangle
添加到您的Canvas.Children
集合中。 如果您想先刪除舊的,請先調用:
canvas1.Children.Remove(rect);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.