Truc #6 : Le vilain HitTest de WPF !

J’ai besoin pour un projet d’effectuer un HitTest pour récupérer le control sur lequel se trouve ma souris.
C’est donc tout naturellement que j’utilise la méthode HitTest de VisualTreeHelper et tout semble fonctionner normalement :)

// this represente une fenetre
DependencyObject t = VisualTreeHelper.HitTest(this, point).VisualHitTest;

Je dis bien « semble » car lorsque j’applique, durant l’exécution, à la propriété Visibility d’un élement la valeur Collapsed, le HitTest continue de voir l’element comme si il était toujours visible !

Alors que faire pour contrer ce vilain HitTest ? Le réecrire ? Heureusement depuis la version 3.0 de WPF, il existe la méthode InputHitTest qui permet de faire un HitTest à partir d’un élément et qui ne passe pas par le HitTest de VisualTreeHelper.

// this represente une fenetre
DependencyObject t = this.InputHitTest(point) as DependencyObject

UUUUUUUra, il ne voit plus l’élément cette fois !

leave your comment