VisualTreeHelper.HitTest Метод

Определение

Возвращает самый верхний объект Visual проверки нажатия.

Перегрузки

HitTest(Visual, Point)

Возвращает самый верхний объект Visual для проверки нажатия, указывая Point.

HitTest(Visual3D, HitTestFilterCallback, HitTestResultCallback, HitTestParameters3D)

Инициирует проверку нажатия в указанном Visual3D с помощью определяемых вызывающей стороной методов HitTestFilterCallback и HitTestResultCallback.

HitTest(Visual, HitTestFilterCallback, HitTestResultCallback, HitTestParameters)

Инициирует проверку нажатия в указанном Visual с помощью определяемых вызывающей стороной методов HitTestFilterCallback и HitTestResultCallback.

Комментарии

Перегруженные методы, которые принимают HitTestResultCallback и HitTestFilterCallback в качестве параметров, предоставляют дополнительные функциональные возможности во время тестирования нажатия:

  • Позволяет участвовать в управлении обходом визуального дерева во время тестирования нажатия.

  • Позволяет извлекать все визуальные элементы в точке или геометрии, а не только самый верхний.

HitTest(Visual, Point)

Возвращает самый верхний объект Visual для проверки нажатия, указывая 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

Параметры

reference
Visual

Visual, используемая для проверки на пересечение.

point
Point

Значение точки для проверки нажатия.

Возвращаемое значение

HitTestResult

Результат проверки нажатия объекта Visual, возвращенный в виде типа HitTestResult.

Примеры

В следующем примере показано, как использовать HitTest метод для проверки объектов в объекте 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

Комментарии

Свойство VisualHit возвращаемого значения представляет Visual объект, который был достигнут.

Примечание

Можно получить тест попадания, который начинается в трехмерном визуальном дереве RayHitTestResult, который является объектом результата 3D-теста попадания. Тестирование попадания, которое начинается в трехмерном визуальном дереве, легко расширяется в любом определенном трехмерном визуальном дереве.

См. также раздел

Применяется к

HitTest(Visual3D, HitTestFilterCallback, HitTestResultCallback, HitTestParameters3D)

Инициирует проверку нажатия в указанном Visual3D с помощью определяемых вызывающей стороной методов HitTestFilterCallback и 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)

Параметры

reference
Visual3D

Visual3D, используемая для проверки на пересечение.

filterCallback
HitTestFilterCallback

Метод, представляющий значение обратного вызова фильтра проверки нажатия.

resultCallback
HitTestResultCallback

Метод, представляющий результирующее значение обратного вызова проверки нажатия.

hitTestParameters
HitTestParameters3D

Значение параметра 3D, для которого производится проверка нажатия.

Комментарии

Параметр filterCallback может быть null, в этом случае он игнорируется. nullВ противном случае filterCallback он вызывается перед resultCallback. Параметр resultCallback не может иметь значение null.

Примечание

Можно получить тест попадания, который начинается в трехмерном визуальном дереве RayHitTestResult, который является объектом результата 3D-теста попадания. Тестирование попадания, которое начинается в трехмерном визуальном дереве, легко расширяется в любом определенном трехмерном визуальном дереве.

Применяется к

HitTest(Visual, HitTestFilterCallback, HitTestResultCallback, HitTestParameters)

Инициирует проверку нажатия в указанном Visual с помощью определяемых вызывающей стороной методов HitTestFilterCallback и 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)

Параметры

reference
Visual

Visual, используемая для проверки на пересечение.

filterCallback
HitTestFilterCallback

Метод, представляющий значение обратного вызова фильтра проверки нажатия.

resultCallback
HitTestResultCallback

Метод, представляющий результирующее значение обратного вызова проверки нажатия.

hitTestParameters
HitTestParameters

Значение параметра, для которого производится проверка нажатия.

Примеры

В следующем примере показано, как использовать HitTest метод для проверки объектов в объекте 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

Комментарии

Параметр filterCallback может быть null, в этом случае он игнорируется. nullВ противном случае filterCallback он вызывается перед resultCallback. Параметр resultCallback не может иметь значение null.

Примечание

Можно получить тест попадания, который начинается в трехмерном визуальном дереве RayHitTestResult, который является объектом результата 3D-теста попадания. Тестирование попадания, которое начинается в трехмерном визуальном дереве, легко расширяется в любом определенном трехмерном визуальном дереве.

См. также раздел

Применяется к