Partager via


VisualTreeHelper.HitTest Méthode

Définition

Retourne l’objet Visual le plus haut d’un test de positionnement.

Surcharges

HitTest(Visual, Point)

Retourne l’objet Visual supérieur d’un test de positionnement en spécifiant un Point.

HitTest(Visual3D, HitTestFilterCallback, HitTestResultCallback, HitTestParameters3D)

Lance un test de positionnement sur le Visual3D spécifié, avec les méthodes HitTestFilterCallback et HitTestResultCallback définies par l’appelant.

HitTest(Visual, HitTestFilterCallback, HitTestResultCallback, HitTestParameters)

Lance un test de positionnement sur le Visual spécifié, avec les méthodes HitTestFilterCallback et HitTestResultCallback définies par l’appelant.

Remarques

Les méthodes surchargées qui prennent HitTestResultCallback et HitTestFilterCallback en tant que paramètres fournissent des fonctionnalités supplémentaires pendant les tests de positionnement :

  • Autorisez-vous à participer au contrôle de la traversée de l’arborescence visuelle pendant les tests de positionnement.

  • Permet de récupérer tous les visuels sous le point ou la géométrie, pas seulement le plus haut.

HitTest(Visual, Point)

Retourne l’objet Visual supérieur d’un test de positionnement en spécifiant un Point.

public:
 static System::Windows::Media::HitTestResult ^ HitTest(System::Windows::Media::Visual ^ reference, System::Windows::Point point);
public static System.Windows.Media.HitTestResult HitTest (System.Windows.Media.Visual reference, System.Windows.Point point);
static member HitTest : System.Windows.Media.Visual * System.Windows.Point -> System.Windows.Media.HitTestResult
Public Shared Function HitTest (reference As Visual, point As Point) As HitTestResult

Paramètres

reference
Visual

Visual sur lequel exécuter le test de positionnement.

point
Point

Valeur de point par rapport à laquelle effectuer le test de positionnement.

Retours

HitTestResult

Résultat du test de positionnement de Visual retourné en tant que type HitTestResult.

Exemples

L’exemple suivant montre comment utiliser la HitTest méthode pour tester les objets au sein d’un Canvas.

// Respond to the left mouse button down event by initiating the hit test.
private void OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    // Retrieve the coordinate of the mouse position.
    Point pt = e.GetPosition((UIElement)sender);

    // Perform the hit test against a given portion of the visual object tree.
    HitTestResult result = VisualTreeHelper.HitTest(myCanvas, pt);

    if (result != null)
    {
        // Perform action on hit visual object.
    }
}
' Respond to the left mouse button down event by initiating the hit test.
Private Overloads Sub OnMouseLeftButtonDown(ByVal sender As Object, ByVal e As MouseButtonEventArgs)
    ' Retrieve the coordinate of the mouse position.
    Dim pt As Point = e.GetPosition(CType(sender, UIElement))

    ' Perform the hit test against a given portion of the visual object tree.
    Dim result As HitTestResult = VisualTreeHelper.HitTest(myCanvas, pt)

    If result IsNot Nothing Then
        ' Perform action on hit visual object.
    End If
End Sub

Remarques

La VisualHit propriété de la valeur de retour représente l’objet Visual qui a été atteint.

Notes

Il est possible qu’un test de positionnement qui démarre dans une arborescence visuelle 2D retourne RayHitTestResult, qui est un objet de résultat de test de positionnement 3D. Les tests de positionnement qui démarrent dans une arborescence visuelle 2D s’étendent en toute transparence à n’importe quelle arborescence visuelle 3D définie.

Voir aussi

S’applique à

HitTest(Visual3D, HitTestFilterCallback, HitTestResultCallback, HitTestParameters3D)

Lance un test de positionnement sur le Visual3D spécifié, avec les méthodes HitTestFilterCallback et HitTestResultCallback définies par l’appelant.

public:
 static void HitTest(System::Windows::Media::Media3D::Visual3D ^ reference, System::Windows::Media::HitTestFilterCallback ^ filterCallback, System::Windows::Media::HitTestResultCallback ^ resultCallback, System::Windows::Media::Media3D::HitTestParameters3D ^ hitTestParameters);
public static void HitTest (System.Windows.Media.Media3D.Visual3D reference, System.Windows.Media.HitTestFilterCallback filterCallback, System.Windows.Media.HitTestResultCallback resultCallback, System.Windows.Media.Media3D.HitTestParameters3D hitTestParameters);
static member HitTest : System.Windows.Media.Media3D.Visual3D * System.Windows.Media.HitTestFilterCallback * System.Windows.Media.HitTestResultCallback * System.Windows.Media.Media3D.HitTestParameters3D -> unit
Public Shared Sub HitTest (reference As Visual3D, filterCallback As HitTestFilterCallback, resultCallback As HitTestResultCallback, hitTestParameters As HitTestParameters3D)

Paramètres

reference
Visual3D

Visual3D sur lequel exécuter le test de positionnement.

filterCallback
HitTestFilterCallback

Méthode qui représente la valeur de rappel du filtre de test de positionnement.

resultCallback
HitTestResultCallback

Méthode qui représente la valeur de rappel du résultat du test de positionnement.

hitTestParameters
HitTestParameters3D

Valeur de paramètre 3D devant faire l’objet d’un test de positionnement.

Remarques

Le filterCallback paramètre peut être null, auquel cas, il est ignoré. Si filterCallback ce n’est pas nullle cas, il est appelé avant resultCallback. resultCallback ne peut pas avoir la valeur null.

Notes

Il est possible qu’un test de positionnement qui démarre dans une arborescence visuelle 2D retourne RayHitTestResult, qui est un objet de résultat de test de positionnement 3D. Les tests de positionnement qui démarrent dans une arborescence visuelle 2D s’étendent en toute transparence à n’importe quelle arborescence visuelle 3D définie.

S’applique à

HitTest(Visual, HitTestFilterCallback, HitTestResultCallback, HitTestParameters)

Lance un test de positionnement sur le Visual spécifié, avec les méthodes HitTestFilterCallback et HitTestResultCallback définies par l’appelant.

public:
 static void HitTest(System::Windows::Media::Visual ^ reference, System::Windows::Media::HitTestFilterCallback ^ filterCallback, System::Windows::Media::HitTestResultCallback ^ resultCallback, System::Windows::Media::HitTestParameters ^ hitTestParameters);
public static void HitTest (System.Windows.Media.Visual reference, System.Windows.Media.HitTestFilterCallback filterCallback, System.Windows.Media.HitTestResultCallback resultCallback, System.Windows.Media.HitTestParameters hitTestParameters);
static member HitTest : System.Windows.Media.Visual * System.Windows.Media.HitTestFilterCallback * System.Windows.Media.HitTestResultCallback * System.Windows.Media.HitTestParameters -> unit
Public Shared Sub HitTest (reference As Visual, filterCallback As HitTestFilterCallback, resultCallback As HitTestResultCallback, hitTestParameters As HitTestParameters)

Paramètres

reference
Visual

Visual sur lequel exécuter le test de positionnement.

filterCallback
HitTestFilterCallback

Méthode qui représente la valeur de rappel du filtre de test de positionnement.

resultCallback
HitTestResultCallback

Méthode qui représente la valeur de rappel du résultat du test de positionnement.

hitTestParameters
HitTestParameters

Valeur de paramètre devant faire l’objet d’un test de positionnement.

Exemples

L’exemple suivant montre comment utiliser la HitTest méthode pour tester les objets au sein d’un Canvas.

// Respond to the right mouse button down event by setting up a hit test results callback.
private void OnMouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
    // Retrieve the coordinate of the mouse position.
    Point pt = e.GetPosition((UIElement)sender);

    // Clear the contents of the list used for hit test results.
    hitResultsList.Clear();

    // Set up a callback to receive the hit test result enumeration.
    VisualTreeHelper.HitTest(myCanvas, null,
        new HitTestResultCallback(MyHitTestResult),
        new PointHitTestParameters(pt));

    // Perform actions on the hit test results list.
    if (hitResultsList.Count > 0)
    {
        Console.WriteLine("Number of Visuals Hit: " + hitResultsList.Count);
    }
}
' Respond to the right mouse button down event by setting up a hit test results callback.
Private Overloads Sub OnMouseRightButtonDown(ByVal sender As Object, ByVal e As MouseButtonEventArgs)
    ' Retrieve the coordinate of the mouse position.
    Dim pt As Point = e.GetPosition(CType(sender, UIElement))

    ' Clear the contents of the list used for hit test results.
    hitResultsList.Clear()

    ' Set up a callback to receive the hit test result enumeration.
    VisualTreeHelper.HitTest(myCanvas, Nothing, New HitTestResultCallback(AddressOf MyHitTestResult), New PointHitTestParameters(pt))

    ' Perform actions on the hit test results list.
    If hitResultsList.Count > 0 Then
        Console.WriteLine("Number of Visuals Hit: " & hitResultsList.Count)
    End If
End Sub
// Return the result of the hit test to the callback.
public HitTestResultBehavior MyHitTestResult(HitTestResult result)
{
    // Add the hit test result to the list that will be processed after the enumeration.
    hitResultsList.Add(result.VisualHit);

    // Set the behavior to return visuals at all z-order levels.
    return HitTestResultBehavior.Continue;
}
' Return the result of the hit test to the callback.
Public Function MyHitTestResult(ByVal result As HitTestResult) As HitTestResultBehavior
    ' Add the hit test result to the list that will be processed after the enumeration.
    hitResultsList.Add(result.VisualHit)

    ' Set the behavior to return visuals at all z-order levels.
    Return HitTestResultBehavior.Continue
End Function

Remarques

Le filterCallback paramètre peut être null, auquel cas il est ignoré. Si filterCallback ce n’est pas nullle cas, il est appelé avant resultCallback. resultCallback ne peut pas avoir la valeur null.

Notes

Il est possible qu’un test de positionnement qui démarre dans une arborescence visuelle 2D retourne RayHitTestResult, qui est un objet de résultat de test de positionnement 3D. Les tests de positionnement qui démarrent dans une arborescence visuelle 2D s’étendent en toute transparence à n’importe quelle arborescence visuelle 3D définie.

Voir aussi

S’applique à