Taal

VisualTreeHelper.HitTest Methode

Definitie

Retourneert het bovenste Visual object van een hittest.

Overloads

Name Description
HitTest(Visual, Point)

Retourneert het bovenste Visual object van een hittest door een Point.

HitTest(Visual3D, HitTestFilterCallback, HitTestResultCallback, HitTestParameters3D)

Start een hittest op de opgegevenVisual3D, met door de aanroeper gedefinieerde HitTestFilterCallback methoden.HitTestResultCallback

HitTest(Visual, HitTestFilterCallback, HitTestResultCallback, HitTestParameters)

Start een hittest op de opgegevenVisual, met door de aanroeper gedefinieerde HitTestFilterCallback methoden.HitTestResultCallback

Opmerkingen

De overbelaste methoden die worden gebruikt HitTestResultCallback en HitTestFilterCallback als parameters bieden extra functionaliteit tijdens het testen van treffers:

  • Hiermee kunt u deelnemen aan het beheren van de traversal van de visualstructuur tijdens het testen van hits.

  • Hiermee kunt u alle visuals onder het punt of de geometrie ophalen, niet alleen de bovenste.

HitTest(Visual, Point)

Retourneert het bovenste Visual object van een hittest door een 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

Parameters

reference
Visual

De Visual te bereiken test.

point
Point

De puntwaarde die moet worden getest.

Retouren

Het resultaat van de hittest van de Visual, geretourneerd als een HitTestResult type.

Voorbeelden

In het volgende voorbeeld ziet u hoe u de HitTest methode gebruikt om de objecten in een Canvaste 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

Opmerkingen

De VisualHit eigenschap van de retourwaarde vertegenwoordigt het Visual object dat is geraakt.

Note

Het is mogelijk voor een hittest die begint in een 2D-visualstructuur om te retourneren RayHitTestResult, wat een 3D-testresultaatobject is. Druk op tests die in een 2D-visualstructuur worden gestart, wordt naadloos uitgebreid naar een gedefinieerde 3D-visualstructuur.

Zie ook

Van toepassing op

HitTest(Visual3D, HitTestFilterCallback, HitTestResultCallback, HitTestParameters3D)

Start een hittest op de opgegevenVisual3D, met door de aanroeper gedefinieerde HitTestFilterCallback methoden.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)

Parameters

reference
Visual3D

De Visual3D te bereiken test.

filterCallback
HitTestFilterCallback

De methode die de callback-waarde voor het hittestfilter vertegenwoordigt.

resultCallback
HitTestResultCallback

De methode die de callbackwaarde voor het treffertestresultaat vertegenwoordigt.

hitTestParameters
HitTestParameters3D

De waarde van de 3D-parameter die moet worden getest.

Opmerkingen

In dat geval kan de filterCallback parameter worden nullgenegeerd. Als filterCallback dat niet nullhet is, wordt deze eerder resultCallbackaangeroepen. resultCallback kan niet zijn null.

Note

Het is mogelijk voor een hittest die begint in een 2D-visualstructuur om te retourneren RayHitTestResult, wat een 3D-testresultaatobject is. Druk op tests die in een 2D-visualstructuur worden gestart, wordt naadloos uitgebreid naar een gedefinieerde 3D-visualstructuur.

Van toepassing op

HitTest(Visual, HitTestFilterCallback, HitTestResultCallback, HitTestParameters)

Start een hittest op de opgegevenVisual, met door de aanroeper gedefinieerde HitTestFilterCallback methoden.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)

Parameters

reference
Visual

De Visual te bereiken test.

filterCallback
HitTestFilterCallback

De methode die de callback-waarde voor het hittestfilter vertegenwoordigt.

resultCallback
HitTestResultCallback

De methode die de callbackwaarde voor het treffertestresultaat vertegenwoordigt.

hitTestParameters
HitTestParameters

De parameterwaarde die moet worden getest.

Voorbeelden

In het volgende voorbeeld ziet u hoe u de HitTest methode gebruikt om de objecten in een Canvaste 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

Opmerkingen

De filterCallback parameter kan zijn null, in welk geval deze wordt genegeerd. Als filterCallback dat niet nullhet is, wordt deze eerder resultCallbackaangeroepen. resultCallback kan niet zijn null.

Note

Het is mogelijk voor een hittest die begint in een 2D-visualstructuur om te retourneren RayHitTestResult, wat een 3D-testresultaatobject is. Druk op tests die in een 2D-visualstructuur worden gestart, wordt naadloos uitgebreid naar een gedefinieerde 3D-visualstructuur.

Zie ook

Van toepassing op