无法删除 wpf 中的事件处理程序
本文关键字:事件处理 程序 wpf 删除 | 更新日期: 2023-09-27 18:36:52
在我的代码中,我做了下一件事:
mouse_down = new MouseButtonEventHandler(Ship_Mouse_Down);
mouse_move = new MouseEventHandler(Ship_Mouse_Move);
mouse_up = new MouseButtonEventHandler(Ship_Mouse_Up);
foreach (Image i in PlayerField.Children)
{
i.MouseUp += mouse_up;
i.MouseDown += mouse_down;
i.MouseMove += mouse_move;
i.Source = (ImageSource)Resources["sea"];
}
这会将处理程序添加到相应的图像。然后,当玩家按下按钮时,我这样做:
foreach (Image i in PlayerField.Children)
{
i.MouseDown -= mouse_down;
i.MouseUp -= mouse_up;
i.MouseMove -= mouse_move;
}
但似乎处理程序仍在运行,我不知道如何永久禁用它们。
始终先删除事件处理程序,然后再添加,可能是您多次添加它们。
foreach (Image i in PlayerField.Children)
{
i.MouseUp -= mouse_up;
i.MouseDown -= mouse_down;
i.MouseMove -= mouse_move;
i.MouseUp += mouse_up;
i.MouseDown += mouse_down;
i.MouseMove += mouse_move;
i.Source = (ImageSource)Resources["sea"];
}
很抱歉
不方便,我发现有相同的处理程序,但应用于 XAML 中的图像容器,所以这就是我找不到它们的原因。