Accueil .Net / C# / WPF / Silverlight Tutoriaux WPF WPF - Pick objet à une location

WPF - Retrouver un objet d'après un click souris 


 

Il est très souvent nécessaire de recherche un objet situé sur un Canvas sous un cick souris.

Il existe pour ce faire la classe : System.Windows.Media.VisualTreeHelper

Dans cette classe vous avez la méthode HitTest qui recherche et retourne l'objet situé au premier niveau des enfants du Canvas situé à une coordonnée précise.

Exemple d'utilisation :

private Picture FindPicture(Point location) {

{

    HitTestResult _result = VisualTreeHelper.HitTest(_canvas, location);

    if(result == null)

          return null;

     Image image =result.VisualHit as Image;

     if(image == null)

         return null;

    return image.Parent as Picture; 

}

 

 Dans notre cas, nous utilisons un objet de type "Picture" (UserControl) qui contient les informations de manipulation de l'objet. Il contient au premier niveau (xaml) un objet de type UIElement "Image". C'est celui-là qui est sélectionné. En récupérant le Parent on obtient le "Picture".