HitTestFilterCallback HitTestFilterCallback HitTestFilterCallback HitTestFilterCallback Delegate

Definición

Representa el método de devolución de llamada que especifica las partes del árbol visual que se van a omitir del procesamiento de la prueba de posicionamiento.Represents the callback method that specifies parts of the visual tree to omit from hit test processing

public delegate System::Windows::Media::HitTestFilterBehavior HitTestFilterCallback(DependencyObject ^ potentialHitTestTarget);
public delegate System.Windows.Media.HitTestFilterBehavior HitTestFilterCallback(DependencyObject potentialHitTestTarget);
type HitTestFilterCallback = delegate of DependencyObject -> HitTestFilterBehavior
Public Delegate Function HitTestFilterCallback(potentialHitTestTarget As DependencyObject) As HitTestFilterBehavior 

Parámetros

potentialHitTestTarget
DependencyObject DependencyObject DependencyObject DependencyObject

Objeto visual para la prueba de posicionamiento.The visual to hit test.

Valor devuelto

System.Windows.Media.HitTestFilterBehavior

HitTestFilterBehavior que representa la acción resultante de la prueba de aciertos.A HitTestFilterBehavior that represents the action resulting from the hit test.

Herencia
HitTestFilterCallbackHitTestFilterCallbackHitTestFilterCallbackHitTestFilterCallback

Ejemplos

El ejemplo siguiente muestra cómo invocar HitTest utilizando un HitTestFilterCallback valor.The following example shows how to invoke HitTest by using a HitTestFilterCallback value. También se define el método de devolución de llamada de prueba de posicionamiento correspondiente.The corresponding hit test callback method is also defined.

// Respond to the mouse wheel event by setting up a hit test filter and results enumeration.
private void OnMouseWheel(object sender, MouseWheelEventArgs 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,
                      new HitTestFilterCallback(MyHitTestFilter),
                      new HitTestResultCallback(MyHitTestResult),
                      new PointHitTestParameters(pt));

    // Perform actions on the hit test results list.
    if (hitResultsList.Count > 0)
    {
        ProcessHitTestResultsList();
    }
}
' Respond to the mouse wheel event by setting up a hit test filter and results enumeration.
Private Overloads Sub OnMouseWheel(ByVal sender As Object, ByVal e As MouseWheelEventArgs)
	' 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, New HitTestFilterCallback(AddressOf MyHitTestFilter), New HitTestResultCallback(AddressOf MyHitTestResult), New PointHitTestParameters(pt))

	' Perform actions on the hit test results list.
	If hitResultsList.Count > 0 Then
		ProcessHitTestResultsList()
	End If
End Sub

El ejemplo siguiente muestra cómo devolver un HitTestFilterBehavior valor desde un método de devolución de llamada de filtro de prueba de posicionamiento.The following example shows how to return a HitTestFilterBehavior value from a hit test filter callback method.

// Filter the hit test values for each object in the enumeration.
public HitTestFilterBehavior MyHitTestFilter(DependencyObject o)
{
    // Test for the object value you want to filter.
    if (o.GetType() == typeof(Label))
    {
        // Visual object and descendants are NOT part of hit test results enumeration.
        return HitTestFilterBehavior.ContinueSkipSelfAndChildren;
    }
    else
    {
        // Visual object is part of hit test results enumeration.
        return HitTestFilterBehavior.Continue;
    }
}
' Filter the hit test values for each object in the enumeration.
Public Function MyHitTestFilter(ByVal o As DependencyObject) As HitTestFilterBehavior
	' Test for the object value you want to filter.
	If o.GetType() Is GetType(Label) Then
		' Visual object and descendants are NOT part of hit test results enumeration.
		Return HitTestFilterBehavior.ContinueSkipSelfAndChildren
	Else
		' Visual object is part of hit test results enumeration.
		Return HitTestFilterBehavior.Continue
	End If
End Function

Comentarios

Se invoca el método de devolución de llamada de filtro de prueba de posicionamiento para todos los objetos visuales que se asignan a los criterios de prueba de posicionamiento, empezando por el objeto visual especificado y descendiendo por su bifurcación del árbol visual.The hit test filter callback method is invoked for all the visual objects that map to the hit test criteria, starting from the visual you specify and descending through its branch of the visual tree. No obstante, es posible que desee omitir determinadas ramas del árbol visual, porque no le interese procesarlas en la función de devolución de llamada de los resultados de pruebas de posicionamiento.However, you may want to ignore certain branches of the visual tree that you are not interested in processing in your hit test results callback function. El valor devuelto de la función de devolución de llamada del filtro de la prueba de posicionamiento determina el tipo de acción que debe realizar la enumeración de los objetos visuales.The return value of the hit test filter callback function determines what type of action the enumeration of the visual objects should take. Por ejemplo, si se devuelve el valor, ContinueSkipSelfAndChildren, puede quitar el objeto visual actual y sus descendientes de la enumeración de los resultados de prueba de posicionamiento.For example, if you return the value, ContinueSkipSelfAndChildren, you can remove the current visual object and its descendants from the hit test results enumeration. Esto significa que el método de devolución de llamada de resultados de prueba de posicionamiento no verá estos objetos en su enumeración.This means that the hit test results callback method will not see these objects in its enumeration.

Nota

Cuando se eliminan objetos del árbol visual, se reduce el número de procesos durante el paso de enumeración de resultados de pruebas de posicionamiento.Pruning the visual tree of objects decreases the amount of processing during the hit test results enumeration pass.

Eliminación de un árbol visual mediante un filtro de prueba de posicionamientoPruning a visual tree using a hit test filter
Eliminar un árbol visualPruning a visual tree

Extension Methods

GetMethodInfo(Delegate) GetMethodInfo(Delegate) GetMethodInfo(Delegate) GetMethodInfo(Delegate)

Obtiene un objeto que representa el método representado por el delegado especificado.Gets an object that represents the method represented by the specified delegate.

Se aplica a

Consulte también: