Sdílet prostřednictvím


VisualTreeHelper.HitTest Metoda

Definice

Vrátí nejvrchnější Visual objekt testu hitu.

Přetížení

HitTest(Visual, Point)

Vrátí nejvrchnější Visual objekt testu hitu zadáním parametru Point.

HitTest(Visual3D, HitTestFilterCallback, HitTestResultCallback, HitTestParameters3D)

Inicializuje test hit na zadaném Visual3D, s volajícím definovanými HitTestFilterCallback a HitTestResultCallback metodami.

HitTest(Visual, HitTestFilterCallback, HitTestResultCallback, HitTestParameters)

Inicializuje test hit na zadaném Visual, s volajícím definovanými HitTestFilterCallback a HitTestResultCallback metodami.

Poznámky

Přetížené metody, které při testování přebírají a HitTestFilterCallback jako HitTestResultCallback parametry poskytují další funkce:

  • Umožňuje účastnit se řízení procházení vizuálního stromu během testování.

  • Umožňuje načíst všechny vizuály pod bodem nebo geometrií, nejen na nejvyšší.

HitTest(Visual, Point)

Vrátí nejvrchnější Visual objekt testu hitu zadáním parametru 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

Parametry

reference
Visual

To, co Visual se má testovat.

point
Point

Hodnota bodu, která se má testovat.

Návraty

HitTestResult

Výsledek testu hitu Visual, vrácen jako HitTestResult typ.

Příklady

Následující příklad ukazuje, jak použít metodu HitTest k otestování objektů v rámci 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

Poznámky

VisualHit Vlastnost návratové hodnoty představuje Visual objekt, který byl nalezen.

Poznámka

Je možné, aby se test hitu, který začíná ve 2D vizuálním stromu, vrátil RayHitTestResult, což je 3D výsledek testu objekt. Testování, které se spustí ve 2D vizuálním stromu, se bezproblémově rozšíří do libovolného definovaného 3D vizuálního stromu.

Viz také

Platí pro

HitTest(Visual3D, HitTestFilterCallback, HitTestResultCallback, HitTestParameters3D)

Inicializuje test hit na zadaném Visual3D, s volajícím definovanými HitTestFilterCallback a HitTestResultCallback metodami.

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)

Parametry

reference
Visual3D

To, co Visual3D se má testovat.

filterCallback
HitTestFilterCallback

Metoda, která představuje hodnotu zpětného volání filtru testu.

resultCallback
HitTestResultCallback

Metoda, která představuje hodnotu zpětného volání výsledku testu hit.

hitTestParameters
HitTestParameters3D

Hodnota 3D parametru, která se má testovat.

Poznámky

Parametr filterCallback může být nullv takovém případě ignorován. Pokud filterCallback není null, je vyvolána před resultCallback. resultCallback nemůže být null.

Poznámka

Je možné, aby se test hitu, který začíná ve 2D vizuálním stromu, vrátil RayHitTestResult, což je 3D výsledek testu objekt. Testování, které se spustí ve 2D vizuálním stromu, se bezproblémově rozšíří do libovolného definovaného 3D vizuálního stromu.

Platí pro

HitTest(Visual, HitTestFilterCallback, HitTestResultCallback, HitTestParameters)

Inicializuje test hit na zadaném Visual, s volajícím definovanými HitTestFilterCallback a HitTestResultCallback metodami.

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)

Parametry

reference
Visual

To, co Visual se má testovat.

filterCallback
HitTestFilterCallback

Metoda, která představuje hodnotu zpětného volání filtru testu.

resultCallback
HitTestResultCallback

Metoda, která představuje hodnotu zpětného volání výsledku testu hit.

hitTestParameters
HitTestParameters

Hodnota parametru, která se má testovat.

Příklady

Následující příklad ukazuje, jak použít metodu HitTest k otestování objektů v rámci 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

Poznámky

Parametr filterCallback může být nullv takovém případě ignorován. Pokud filterCallback není null, je vyvolána před resultCallback. resultCallback nemůže být null.

Poznámka

Je možné, aby se test hitu, který začíná ve 2D vizuálním stromu, vrátil RayHitTestResult, což je 3D výsledek testu objekt. Testování, které se spustí ve 2D vizuálním stromu, se bezproblémově rozšíří do libovolného definovaného 3D vizuálního stromu.

Viz také

Platí pro