HitTestFilterCallback Delegera

Definition

Representerar motringningsmetoden som anger delar av det visuella trädet som ska utelämnas från bearbetning av träfftest.

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 

Parametrar

potentialHitTestTarget
DependencyObject

Det visuella objekt som ska testas.

Returvärde

En HitTestFilterBehavior som representerar åtgärden som är resultatet av träfftestet.

Exempel

I följande exempel visas hur du anropar HitTest med hjälp av ett HitTestFilterCallback värde. Motsvarande återanropsmetod för träfftest definieras också.

// 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

I följande exempel visas hur du returnerar ett HitTestFilterBehavior värde från en återanropsmetod för träfftestfilter.

// 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

Kommentarer

Återanropsmetoden för träfftestfilter anropas för alla visuella objekt som mappas till träfftestvillkoren, med början från det visuella objekt som du anger och fallande genom dess gren av det visuella trädet. Men du kanske vill ignorera vissa grenar av det visuella trädet som du inte är intresserad av att bearbeta i återanropsfunktionen för träfftestresultat. Returvärdet för callback-funktionen för träfftestfiltret bestämmer vilken typ av åtgärd som bör vidtas vid uppräkningen av de visuella objekten. Om du till exempel returnerar värdet ContinueSkipSelfAndChildrenkan du ta bort det aktuella visuella objektet och dess underordnade objekt från träfftestresultatuppräkningen. Det innebär att återanropsmetoden träfftestresultat inte ser dessa objekt i uppräkningen.

Note

Om du rensar objektens visuella träd minskar bearbetningen under uppräkningspasset för träfftestresultatet.

Rensa ett visuellt träd med hjälp av ett träfftestfilter Rensa ett visuellt träd

Tilläggsmetoder

Name Description
GetMethodInfo(Delegate)

Hämtar ett objekt som representerar den metod som representeras av det angivna ombudet.

Gäller för

Se även