无法删除的事件处理程序在WPF
问题描述:
在我的代码,我做的下一件事:无法删除的事件处理程序在WPF
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"];
}
答
对不起inconviniance,我发现有相同的处理程序,但适用于XAML图像的容器,所以这就是为什么我无法找到他们。
我试着你告诉我,但它不起作用。处理程序仍在运行。 – Unencrypted
发布更多的代码,也许我们可以帮助尝试和解决。 – Taterhead