Udostępnij za pośrednictwem


VisualTreeHelper.HitTest Metoda

Definicja

Zwraca najbardziej górny Visual obiekt testu trafienia.

Przeciążenia

HitTest(Visual, Point)

Zwraca najbardziej górny Visual obiekt testu trafienia, określając Pointelement .

HitTest(Visual3D, HitTestFilterCallback, HitTestResultCallback, HitTestParameters3D)

Inicjuje test trafienia dla określonego Visual3Delementu z zdefiniowanymi HitTestFilterCallback metodami i HitTestResultCallback wywołującymi.

HitTest(Visual, HitTestFilterCallback, HitTestResultCallback, HitTestParameters)

Inicjuje test trafienia dla określonego Visualelementu z zdefiniowanymi HitTestFilterCallback metodami i HitTestResultCallback wywołującymi.

Uwagi

Metody przeciążone, które przyjmują HitTestResultCallback parametry i HitTestFilterCallback jako parametry, zapewniają dodatkowe funkcje podczas testowania trafień:

  • Umożliwia uczestnictwo w kontrolowaniu przechodzenia drzewa wizualnego podczas testowania trafień.

  • Umożliwia pobranie wszystkich wizualizacji pod punktem lub geometrią, a nie tylko najwyższego poziomu.

HitTest(Visual, Point)

Zwraca najbardziej górny Visual obiekt testu trafienia, określając Pointelement .

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

Test Visual trafienia.

point
Point

Wartość punktu do trafienia w celu przetestowania.

Zwraca

HitTestResult

Wynik testu trafienia Visualelementu zwrócony jako HitTestResult typ.

Przykłady

W poniższym przykładzie pokazano, jak za pomocą HitTest metody przetestować obiekty w obiekcie 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

Uwagi

Właściwość VisualHit wartości zwracanej reprezentuje Visual obiekt, który został trafiony.

Uwaga

Istnieje możliwość, że test trafienia, który rozpoczyna się w drzewie wizualnym 2D, aby zwrócić RayHitTestResultwartość , która jest obiektem wyniku testu trafień 3D. Testowanie trafień, które rozpoczyna się w drzewie wizualnym 2D, bezproblemowo rozszerza się na dowolne zdefiniowane drzewo wizualne 3D.

Zobacz też

Dotyczy

HitTest(Visual3D, HitTestFilterCallback, HitTestResultCallback, HitTestParameters3D)

Inicjuje test trafienia dla określonego Visual3Delementu z zdefiniowanymi HitTestFilterCallback metodami i HitTestResultCallback wywołującymi.

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

Test Visual3D trafienia.

filterCallback
HitTestFilterCallback

Metoda reprezentująca wartość wywołania zwrotnego filtru testu trafienia.

resultCallback
HitTestResultCallback

Metoda reprezentująca wartość wywołania zwrotnego wyniku testu trafienia.

hitTestParameters
HitTestParameters3D

Wartość parametru 3D do przetestowania.

Uwagi

Parametr filterCallback może mieć nullwartość , w tym przypadku jest ignorowany. Jeśli filterCallback parametr nie nulljest , jest wywoływany przed .resultCallback resultCallback nie może być null.

Uwaga

Istnieje możliwość, że test trafienia, który rozpoczyna się w drzewie wizualnym 2D, aby zwrócić RayHitTestResultwartość , która jest obiektem wyniku testu trafień 3D. Testowanie trafień, które rozpoczyna się w drzewie wizualnym 2D, bezproblemowo rozszerza się na dowolne zdefiniowane drzewo wizualne 3D.

Dotyczy

HitTest(Visual, HitTestFilterCallback, HitTestResultCallback, HitTestParameters)

Inicjuje test trafienia dla określonego Visualelementu z zdefiniowanymi HitTestFilterCallback metodami i HitTestResultCallback wywołującymi.

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

Test Visual trafienia.

filterCallback
HitTestFilterCallback

Metoda reprezentująca wartość wywołania zwrotnego filtru testu trafienia.

resultCallback
HitTestResultCallback

Metoda reprezentująca wartość wywołania zwrotnego wyniku testu trafienia.

hitTestParameters
HitTestParameters

Wartość parametru do przetestowania.

Przykłady

W poniższym przykładzie pokazano, jak za pomocą HitTest metody przetestować obiekty w obiekcie 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

Uwagi

Parametr filterCallback może mieć nullwartość , w którym przypadku jest ignorowany. Jeśli filterCallback parametr nie nulljest , jest wywoływany przed .resultCallback resultCallback nie może być null.

Uwaga

Istnieje możliwość, że test trafienia, który rozpoczyna się w drzewie wizualnym 2D, aby zwrócić RayHitTestResultwartość , która jest obiektem wyniku testu trafień 3D. Testowanie trafień, które rozpoczyna się w drzewie wizualnym 2D, bezproblemowo rozszerza się na dowolne zdefiniowane drzewo wizualne 3D.

Zobacz też

Dotyczy