HitTestFilterCallback HitTestFilterCallback HitTestFilterCallback HitTestFilterCallback Delegate

Definizione

Rappresenta il metodo di callback che specifica le parti della struttura ad albero visuale da omettere dall'elaborazione dell'hit test.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 

Parametri

potentialHitTestTarget
DependencyObject DependencyObject DependencyObject DependencyObject

Oggetto visivo per l'hit test.The visual to hit test.

Valore restituito

System.Windows.Media.HitTestFilterBehavior

Oggetto HitTestFilterBehavior che rappresenta l'azione risultante dell'hit test.A HitTestFilterBehavior that represents the action resulting from the hit test.

Ereditarietà
HitTestFilterCallbackHitTestFilterCallbackHitTestFilterCallbackHitTestFilterCallback

Esempi

Nell'esempio seguente viene illustrato come richiamare HitTest utilizzando un HitTestFilterCallback valore.The following example shows how to invoke HitTest by using a HitTestFilterCallback value. Viene definito anche il metodo di callback dell'hit test corrispondente.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

Nell'esempio seguente viene illustrato come restituire un HitTestFilterBehavior valore da un metodo di callback del filtro dell'hit test.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

Commenti

Il metodo di callback del filtro dell'hit test viene richiamato per tutti gli oggetti visivi mappati ai criteri di hit test, a partire dall'oggetto visivo specificato e decrescente tramite il ramo della struttura ad albero visuale.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. È possibile tuttavia decidere di ignorare determinate parti della struttura ad albero visuale che non si desidera elaborare nella funzione di callback dei risultati dell'hit test.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. Il valore restituito dalla funzione di callback del filtro dell'hit test determina il tipo di azione che deve essere eseguita dall'enumerazione degli oggetti visivi.The return value of the hit test filter callback function determines what type of action the enumeration of the visual objects should take. Se, ad esempio, si restituisce il valore ContinueSkipSelfAndChildren, è possibile rimuovere l'oggetto visivo corrente e i relativi discendenti dall'enumerazione dei risultati dell'hit test.For example, if you return the value, ContinueSkipSelfAndChildren, you can remove the current visual object and its descendants from the hit test results enumeration. Questo significa che il metodo di callback dei risultati dell'hit test non visualizzerà questi oggetti nell'enumerazione.This means that the hit test results callback method will not see these objects in its enumeration.

Nota

L'eliminazione di oggetti dalla struttura ad albero visuale consente di ridurre la quantità di elaborazione durante la fase di enumerazione dei risultati dell'hit test.Pruning the visual tree of objects decreases the amount of processing during the hit test results enumeration pass.

Eliminazione di una struttura ad albero visuale con un filtro hit testPruning a visual tree using a hit test filter
Eliminazione di una struttura ad albero visualePruning a visual tree

Metodi di estensione

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

Ottiene un oggetto che rappresenta il metodo rappresentato dal delegato specificato.Gets an object that represents the method represented by the specified delegate.

Si applica a

Vedi anche