VisualTreeHelper.HitTest Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve el objeto Visual de nivel superior de una prueba de posicionamiento.
Sobrecargas
HitTest(Visual, Point) |
Devuelve el objeto Point de nivel superior de una prueba de posicionamiento al especificar un objeto Visual. |
HitTest(Visual3D, HitTestFilterCallback, HitTestResultCallback, HitTestParameters3D) |
Inicia una prueba de posicionamiento en el objeto Visual3D, con los métodos HitTestFilterCallback y HitTestResultCallback definidos por el autor de llamada. |
HitTest(Visual, HitTestFilterCallback, HitTestResultCallback, HitTestParameters) |
Inicia una prueba de posicionamiento en el objeto Visual, con los métodos HitTestFilterCallback y HitTestResultCallback definidos por el autor de llamada. |
Comentarios
Los métodos sobrecargados que toman HitTestResultCallback y HitTestFilterCallback como parámetros proporcionan funcionalidad adicional durante las pruebas de posicionamiento:
Permite participar en el control del recorrido del árbol visual durante las pruebas de posicionamiento.
Permite recuperar todos los objetos visuales debajo del punto o geometría, no solo el más alto.
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
Parámetros
- point
- Point
Valor de punto para la prueba de posicionamiento.
Devoluciones
Resultado de la prueba de posicionamiento del HitTestResult, devuelto como un tipo Visual.
Ejemplos
En el ejemplo siguiente se muestra cómo usar el HitTest método para realizar pruebas de posicionamiento de los objetos dentro de .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
Comentarios
La VisualHit propiedad del valor devuelto representa el Visual objeto al que se ha alcanzado.
Nota
Es posible que una prueba de posicionamiento se inicie en un árbol visual 2D para devolver RayHitTestResult, que es un objeto de resultado de prueba de posicionamiento 3D. Las pruebas de posicionamiento que se inician en un árbol visual 2D se extienden perfectamente a cualquier árbol visual 3D definido.
Consulte también
Se aplica a
HitTest(Visual3D, HitTestFilterCallback, HitTestResultCallback, HitTestParameters3D)
Inicia una prueba de posicionamiento en el objeto Visual3D, con los métodos HitTestFilterCallback y HitTestResultCallback definidos por el autor de llamada.
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)
Parámetros
- filterCallback
- HitTestFilterCallback
Método que representa el valor de devolución de llamada del filtro de la prueba de posicionamiento.
- resultCallback
- HitTestResultCallback
Método que representa el valor de devolución de llamada del resultado de la prueba de posicionamiento.
- hitTestParameters
- HitTestParameters3D
Valor del parámetro 3D con el que se realizará la prueba de posicionamiento.
Comentarios
El filterCallback
parámetro puede ser null
, en cuyo caso, se omite. Si filterCallback
no null
es , se invoca antes resultCallback
de . El valor de resultCallback
no puede ser null
.
Nota
Es posible que una prueba de posicionamiento se inicie en un árbol visual 2D para devolver RayHitTestResult, que es un objeto de resultado de prueba de posicionamiento 3D. Las pruebas de posicionamiento que se inician en un árbol visual 2D se extienden perfectamente a cualquier árbol visual 3D definido.
Se aplica a
HitTest(Visual, HitTestFilterCallback, HitTestResultCallback, HitTestParameters)
Inicia una prueba de posicionamiento en el objeto Visual, con los métodos HitTestFilterCallback y HitTestResultCallback definidos por el autor de llamada.
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)
Parámetros
- filterCallback
- HitTestFilterCallback
Método que representa el valor de devolución de llamada del filtro de la prueba de posicionamiento.
- resultCallback
- HitTestResultCallback
Método que representa el valor de devolución de llamada del resultado de la prueba de posicionamiento.
- hitTestParameters
- HitTestParameters
Valor del parámetro con el que se realizará la prueba de posicionamiento.
Ejemplos
En el ejemplo siguiente se muestra cómo usar el HitTest método para realizar pruebas de posicionamiento de los objetos dentro de .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
Comentarios
El filterCallback
parámetro puede ser null
, en cuyo caso se omite. Si filterCallback
no null
es , se invoca antes resultCallback
de . El valor de resultCallback
no puede ser null
.
Nota
Es posible que una prueba de posicionamiento se inicie en un árbol visual 2D para devolver RayHitTestResult, que es un objeto de resultado de prueba de posicionamiento 3D. Las pruebas de posicionamiento que se inician en un árbol visual 2D se extienden perfectamente a cualquier árbol visual 3D definido.