HitTestFilterCallback Délégué

Définition

Représente la méthode de rappel qui spécifie les parties de l’arborescence d’éléments visuels à omettre dans le traitement du test de positionnement.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 

Paramètres

potentialHitTestTarget
DependencyObject

Élément visuel sur lequel exécuter le test de positionnement.The visual to hit test.

Valeur renvoyée

HitTestFilterBehavior

HitTestFilterBehavior qui représente l’action résultant du test de positionnement.A HitTestFilterBehavior that represents the action resulting from the hit test.

Héritage
HitTestFilterCallback

Exemples

L’exemple suivant montre comment appeler HitTest à l’aide d’une valeur HitTestFilterCallback.The following example shows how to invoke HitTest by using a HitTestFilterCallback value. La méthode de rappel du test de positionnement correspondante est également définie.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

L’exemple suivant montre comment retourner une valeur HitTestFilterBehavior à partir d’une méthode de rappel de filtre de test de positionnement.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

Remarques

La méthode de rappel de filtre de test de positionnement est appelée pour tous les objets visuels qui mappent aux critères de test de positionnement, en commençant par l’objet visuel que vous spécifiez et décroissant par rapport à sa branche de l’arborescence d’éléments visuels.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. Toutefois, vous pouvez ignorer certaines branches de l’arborescence d’éléments visuels que vous ne souhaitez pas traiter dans votre fonction de rappel des résultats de test de positionnement.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. La valeur de retour de la fonction de rappel de filtre de test de positionnement détermine le type d’action que l’énumération des objets visuels doit prendre.The return value of the hit test filter callback function determines what type of action the enumeration of the visual objects should take. Par exemple, si vous retournez la valeur, ContinueSkipSelfAndChildren, vous pouvez supprimer l’objet visuel actuel et ses descendants de l’énumération des résultats du test de positionnement.For example, if you return the value, ContinueSkipSelfAndChildren, you can remove the current visual object and its descendants from the hit test results enumeration. Cela signifie que la méthode de rappel des résultats du test de positionnement ne verra pas ces objets dans son énumération.This means that the hit test results callback method will not see these objects in its enumeration.

Notes

L’élagage des objets dans l’arborescence visuelle diminue la quantité de traitement au cours de la passe de l’énumération des résultats de test de positionnement.Pruning the visual tree of objects decreases the amount of processing during the hit test results enumeration pass.

Élagage d’une arborescence d’éléments visuels à l’aide d’un filtre de test de positionnementPruning a visual tree using a hit test filter
Élagage d’une arborescence visuellePruning a visual tree

Méthodes d’extension

GetMethodInfo(Delegate)

Obtient un objet qui représente la méthode représentée par le délégué spécifié.Gets an object that represents the method represented by the specified delegate.

S’applique à

Voir aussi