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)
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
Параметры
- point
- Point
Значение точки для проверки нажатия.
Возвращаемое значение
Результат проверки нажатия объекта 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)
Параметры
- 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)
Параметры
- 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-теста попадания. Тестирование попадания, которое начинается в трехмерном визуальном дереве, легко расширяется в любом определенном трехмерном визуальном дереве.