0
我比較新手。我認爲的問題很簡單,但我找不到解決方案。點擊button1打開一個彈出窗口並添加到canvas1
一個MouseDown事件處理程序canvas1.MouseDown += (s1, e1) =>{...};
我想在用戶關閉彈出窗口時將其刪除。這裏是整個代碼:如何刪除動態創建的事件處理程序?
namespace MyfApplication1
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
int linesNumber = 0;
Button button1 = new Button();
button1.Content = "Draw";
button1.HorizontalAlignment = HorizontalAlignment.Left;
button1.VerticalAlignment = VerticalAlignment.Top;
button1.Click += (s, e) =>
{
Popup popup = new Popup();
popup.PlacementTarget = button1;
popup.IsOpen = true;
Button closePopupButton = new Button();
closePopupButton.Content = "close";
closePopupButton.Click += (s1, e1) =>
{
popup.IsOpen = false;
// remove canvas1.MouseDown event handler here
};
popup.Child = closePopupButton;
canvas1.MouseDown += (s1, e1) =>
{
Point point = Mouse.GetPosition(canvas1);
Line line = new Line();
line.X2 = point.X; line.Y2 = point.Y;
line.Stroke = Brushes.Red; line.StrokeThickness = 1;
canvas1.Children.Add(line);
linesNumber++;
};
};
grid1.Children.Add(button1);
}
}
}
謝謝你,它的工作,但與MouseButtonEventHandler而不是var – butaro
對不起,我也注意到了這個錯誤,並且已經糾正了它 – doerig
看起來@VladimirMarinov正在嘗試在他原來的問題中這樣做,並且我現在要做:我需要從onMouseDown事件處理程序中刪除onMousedown事件處理程序!當我嘗試這樣做時,雖然intellisense說「使用未分配的局部變量onMouseDown」你是如何解決這個問題的? –