HitTestFilterCallback HitTestFilterCallback HitTestFilterCallback HitTestFilterCallback Delegate

Definition

Stellt die Rückrufmethode dar, die Teile der visuellen Struktur angibt, für die keine Treffertestverarbeitung ausgeführt werden soll.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 

Parameter

potentialHitTestTarget
DependencyObject DependencyObject DependencyObject DependencyObject

Das visuelle Element für die Treffertestverarbeitung.The visual to hit test.

Rückgabewert

System.Windows.Media.HitTestFilterBehavior

Ein HitTestFilterBehavior, das die Aktion darstellt, die sich aus dem Treffertest ergibt .A HitTestFilterBehavior that represents the action resulting from the hit test.

Vererbung
HitTestFilterCallbackHitTestFilterCallbackHitTestFilterCallbackHitTestFilterCallback

Beispiele

Im folgenden Beispiel HitTest wird gezeigt, wie mithilfe eines HitTestFilterCallback -Werts aufgerufen wird.The following example shows how to invoke HitTest by using a HitTestFilterCallback value. Die entsprechende Treffer Test-Rückruf Methode ist ebenfalls definiert.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

Im folgenden Beispiel wird gezeigt, wie ein HitTestFilterBehavior Wert aus einer Treffer Test Filter-Rückruf Methode zurückgegeben wird.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

Hinweise

Die Treffer Test Filter-Rückruf Methode wird für alle visuellen Objekte aufgerufen, die den Treffer Testkriterien zugeordnet sind, beginnend mit dem visuellen Element, das Sie angeben, und absteigend durch den zugehörigen Branch der visuellen Struktur.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. Sie können jedoch auch bestimmte Verzweigungen der visuellen Struktur ignorieren, die im Rahmen Ihrer Treffertestergebnis-Rückruffunktion nicht verarbeitet werden sollen.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. Der Rückgabewert der Treffertestfilter-Rückruffunktion bestimmt, welcher Typ von Aktion von der Enumeration der visuellen Objekte ausgeführt werden soll.The return value of the hit test filter callback function determines what type of action the enumeration of the visual objects should take. Wenn Sie z. b. den Wert ContinueSkipSelfAndChildrenzurückgeben, können Sie das aktuelle visuelle Objekt und seine Nachfolger aus der Enumeration der Treffer Testergebnisse entfernen.For example, if you return the value, ContinueSkipSelfAndChildren, you can remove the current visual object and its descendants from the hit test results enumeration. Dies bedeutet, dass die Treffer Testergebnis-Rückruf Methode diese Objekte nicht in ihrer-Enumeration sehen kann.This means that the hit test results callback method will not see these objects in its enumeration.

Hinweis

Durch das Reduzieren der Verzweigungen in der visuellen Struktur von Objekten wird der Verarbeitungsaufwand während der Übergabe der Auflistung von Treffertestergebnissen verringert.Pruning the visual tree of objects decreases the amount of processing during the hit test results enumeration pass.

Löschen ![eines visuellen Baums mithilfe eines Treffer Test Filters] Löschen (~/add/media/filteredvisualtree-01.png "eines visuellen Baums mithilfe eines Treffer Test Filters")Pruning a visual tree using a hit test filter
Reduzieren der Verzweigungen in einer visuellen StrukturPruning a visual tree

Erweiterungsmethoden

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

Ruft ein Objekt ab, das die Methode darstellt, die vom angegebenen Delegaten dargestellt wird.Gets an object that represents the method represented by the specified delegate.

Gilt für:

Siehe auch