WPF France

  • Augmenter la taille
  • Taille par défaut
  • Diminuer la taille

S'abonner aux évenements même si ils sont marqués handled

Envoyer Imprimer PDF
Note des utilisateurs: / 1
MauvaisTrès bien 

Comme vous le savez surement, WPF à introduit les événements routés. Ils ne sont plus spécifiques à un seul control mais sont "routés" au travers de votre hiérarchie de contrôles.

Si vous voulez stopper un événement, vous pouvez le marquer comme Handled (en mettant la propriété Handled à True dans un handler). Ainsi fait, le moteur de routage WPF arrête de le propager. En réalité, l'événement est bien remonté mais les différents gestionnaires d'événements ne sont plus appelés.

Il arrive cependant, par exemple lorsque l'on utilise des contrôles provenant d'éditeurs tiers, que vous vouliez quand même vous abonnez à ces événements bloqués. Ceci est tout à fait possible !

Voici un petit bout de code bien pratique, qui réalise ce tour de magie :

anyUIElement.AddHandler(
    UIElement.MouseEnterEvent,
    (RoutedEventHandler)OnMouseEnterCallMeAlways,
    true
    );

Cette méthode peut être utilisé sur n'importe quel UIElement mais seulement depuis le code. La partie important est le booléen qui indique au moteur d'appeller les gestionnaires d'événements même si l'événement est marqué comme Handled.

(Article traduit de l'anglais depuis : http://blog.lexique-du-net.com )

Commentaires (0)
Mise à jour le Mardi, 23 Mars 2010 10:14  

Partagez


Article au hasard

  • Il est relativement courant dans une application de vérifier l'existence d'un fichier avant de l'utiliser. Dans une application riche WPF ou Silverlight, l'utilisation des média rend cela encore plus fréquent.

    Afin d'effectuer ce contrôle, le framework .Net propose l'utilisation des classes File et/ou FileInfo. Mais l'obtention de ce résultat peut parfois être très long et particulièrement trop long pour moi :). Dans cet article nous allons détailler une méthode qui peut être utilisé...
    Lire la suite...