2016-03-01 3 views
0

В моем коде, я следующую вещь:Невозможно удалить обработчик событий в МОФ

 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; 
     } 

Но, похоже, что обработчики еще и я не знаю, как отключить их навсегда.

ответ

3

Сначала удалите обработчики событий, а затем добавьте их, возможно, вы добавляете их несколько раз.

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"]; 
} 
+0

Я попробовал то, что вы мне сказали, но это не работает. Обработчики все еще работают. – Unencrypted

+0

опубликуйте больше кода и, возможно, мы сможем помочь вам в этом. – Taterhead

0

Извините за inconviniance, я обнаружил, что там же обработчики, но применительно к контейнерам изображений в XAML, так вот почему я не мог найти их.

 Смежные вопросы

  • Нет связанных вопросов^_^