Freigeben über


VisualTreeHelper.HitTest Methode

Definition

Gibt das oberste Visual-Objekt eines Treffertests zurück.

Überlädt

HitTest(Visual, Point)

Gibt das oberste Visual-Objekt eines Treffertests zurück, indem ein Point angegeben wird.

HitTest(Visual3D, HitTestFilterCallback, HitTestResultCallback, HitTestParameters3D)

Initiiert einen Treffertest für das angegebene Visual3D mit den vom Aufrufer definierten Methoden HitTestFilterCallback und HitTestResultCallback.

HitTest(Visual, HitTestFilterCallback, HitTestResultCallback, HitTestParameters)

Initiiert einen Treffertest für das angegebene Visual mit den vom Aufrufer definierten Methoden HitTestFilterCallback und HitTestResultCallback.

Hinweise

Die überladenen Methoden, die während der Treffertests zusätzliche Funktionen ausführen HitTestResultCallback und HitTestFilterCallback als Parameter bereitstellen:

  • Ermöglichen Sie ihnen die Teilnahme an der Steuerung der visuellen Baumquerung während der Treffertests.

  • Ermöglichen Sie es Ihnen, alle Visuellen unter dem Punkt oder der Geometrie abzurufen, nicht nur die oberste.

HitTest(Visual, Point)

Gibt das oberste Visual-Objekt eines Treffertests zurück, indem ein Point angegeben wird.

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

Parameter

reference
Visual

Das Visual-Element, für das ein Treffertest durchgeführt werden soll.

point
Point

Der Punktwert, gegen den ein Treffertest ausgeführt werden soll.

Gibt zurück

HitTestResult

Das als HitTestResult-Typ zurückgegebene Ergebnis des Treffertests für das Visual-Element.

Beispiele

Im folgenden Beispiel wird gezeigt, wie Sie die Methode verwenden, um die HitTest Objekte innerhalb eines CanvasObjekts zu testen.

// 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

Hinweise

Die VisualHit Eigenschaft des Rückgabewerts stellt das Visual Objekt dar, das getroffen wurde.

Hinweis

Es ist möglich, dass ein Treffertest in einer visuellen 2D-Struktur beginnt, um zurückzugeben RayHitTestResult, was ein 3D-Treffertestergebnisobjekt ist. Treffertests, die in einer visuellen 2D-Struktur beginnen, erweitert sich nahtlos in jede definierte visuelle 3D-Struktur.

Siehe auch

Gilt für

HitTest(Visual3D, HitTestFilterCallback, HitTestResultCallback, HitTestParameters3D)

Initiiert einen Treffertest für das angegebene Visual3D mit den vom Aufrufer definierten Methoden HitTestFilterCallback und HitTestResultCallback.

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)

Parameter

reference
Visual3D

Das Visual3D-Element, für das ein Treffertest durchgeführt werden soll.

filterCallback
HitTestFilterCallback

Die Methode, die den Rückrufwert für den Treffertestfilter darstellt.

resultCallback
HitTestResultCallback

Die Methode, die den Rückrufwert für das Treffertestergebnis darstellt.

hitTestParameters
HitTestParameters3D

Der 3D-Parameterwert, für den ein Treffertest ausgeführt werden soll.

Hinweise

Der filterCallback Parameter kann in diesem Fall ignoriert werden null. Wenn filterCallback nicht null, wird es vor resultCallbackdem Aufruf aufgerufen. resultCallback darf nicht null sein.

Hinweis

Es ist möglich, dass ein Treffertest in einer visuellen 2D-Struktur beginnt, um zurückzugeben RayHitTestResult, was ein 3D-Treffertestergebnisobjekt ist. Treffertests, die in einer visuellen 2D-Struktur beginnen, erweitert sich nahtlos in jede definierte visuelle 3D-Struktur.

Gilt für

HitTest(Visual, HitTestFilterCallback, HitTestResultCallback, HitTestParameters)

Initiiert einen Treffertest für das angegebene Visual mit den vom Aufrufer definierten Methoden HitTestFilterCallback und HitTestResultCallback.

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)

Parameter

reference
Visual

Das Visual-Element, für das ein Treffertest durchgeführt werden soll.

filterCallback
HitTestFilterCallback

Die Methode, die den Rückrufwert für den Treffertestfilter darstellt.

resultCallback
HitTestResultCallback

Die Methode, die den Rückrufwert für das Treffertestergebnis darstellt.

hitTestParameters
HitTestParameters

Der Parameterwert, für den ein Treffertest ausgeführt werden soll.

Beispiele

Im folgenden Beispiel wird gezeigt, wie Sie die Methode verwenden, um die HitTest Objekte innerhalb eines CanvasObjekts zu testen.

// 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

Hinweise

Der filterCallback Parameter kann in diesem Fall ignoriert werden null. Wenn filterCallback nicht null, wird es vor resultCallbackdem Aufruf aufgerufen. resultCallback darf nicht null sein.

Hinweis

Es ist möglich, dass ein Treffertest in einer visuellen 2D-Struktur beginnt, um zurückzugeben RayHitTestResult, was ein 3D-Treffertestergebnisobjekt ist. Treffertests, die in einer visuellen 2D-Struktur beginnen, erweitert sich nahtlos in jede definierte visuelle 3D-Struktur.

Siehe auch

Gilt für