MouseLeftButtonUp ne se déclenche pas

J’ai un Button

   

Mais le problème est que, contrairement à MouseLeftButtonDown, l’événement MouseLeftButtonUp ne se déclenche pas. Pourquoi? Comment puis-je le résoudre? Merci.

    Probablement parce que le Button gère déjà l’événement, il ne filtre donc pas jusqu’au contrôle Image.

    Pourquoi gérez-vous les événements MoustUp et MouseDown sur l’ Image ? Pourquoi ne pas les manipuler sur le Button ?

    MODIFIER
    Après un rapide coup d’œil à la documentation de cet événement, je constate que la stratégie de routage de MouseLeftButtonUp est Direct , mais que l’événement sous-jacent réel est l’événement MouseUp qui possède une stratégie de Bubbling . Donc, en réalité, MouseLeftButtonUp devrait avoir une stratégie de barbotage de facto, ce qui signifie que l’ Image devrait avoir la possibilité de gérer l’événement avant le Button .

    On dirait que quelque chose d’autre pourrait se passer. Si vous définissez l’image sur rien dans le contrôle Image et que l’arrière-plan est Color.Transparent (différent de Color.Transparent ), WPF considérera le contrôle comme non “existant” dans la mesure où les événements de souris Color.Transparent .

    EDIT 2
    Hmm … peut-être que mon hypothèse initiale était correcte après tout. Selon ce fil:
    http://social.msdn.microsoft.com/forums/en/wpf/thread/e231919d-9fef-4aa5-9dcb-2c1eb68df25b/#306db880-ed50-45d2-819f-88d76f7148c1
    Button gère l’événement MouseUp . Essayez d’utiliser PreviewMouseUp , puis cochez le bouton sur lequel vous avez cliqué.

    EDIT 3
    Ok … je pense l’avoir compris. Je parie que le bouton “capture” la souris sur l’événement MouseDown. Lorsque cela se produit, les autres contrôles ne recevront pas les événements MouseUp ou MouseDown (y compris les versions Preview) jusqu’à ce que la souris soit publiée.
    Voir: http://books.google.com/books?id=nYl7J7z3KssC&pg=PA146#v=twopage&q&f=true.

    L’événement Click gère l’événement LeftMouseUp comme l’a dit Cyborgx37.

    Vous pouvez utiliser l’événement MouseLeftButtonUp au lieu de MouseLeftButtonUp , sur Button comme vous pouvez le voir ci-dessous:

      

    Votre modèle de bouton ne contient qu’une image. Je suppose que vous n’avez pas besoin de ce bouton, vous pouvez l’utiliser comme ci-dessus pour pouvoir capturer l’événement MouseLeftUp.

      

    Cette façon de faire est tellement plus facile, mais cela dépend de ce dont vous avez besoin.

    Btw, désolé pour ma merde anglais, j’espère que cela pourrait vous aider.

    Essayez d’utiliser l’événement PreviewMouseLeftButtonUp.