HitTestFilterCallback HitTestFilterCallback HitTestFilterCallback HitTestFilterCallback Delegate

Определение

Представляет метод обратного вызова, задающий части визуального дерева, исключаемые из обработки при проверке нажатия.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 

Параметры

potentialHitTestTarget
DependencyObject DependencyObject DependencyObject DependencyObject

Визуальный элемент для проверки нажатия.The visual to hit test.

Возвращаемое значение

System.Windows.Media.HitTestFilterBehavior

Объект HitTestFilterBehavior, представляющий действие, происходящее в результате проверки нажатия.A HitTestFilterBehavior that represents the action resulting from the hit test.

Наследование
HitTestFilterCallbackHitTestFilterCallbackHitTestFilterCallbackHitTestFilterCallback

Примеры

В следующем примере показано, как вызвать HitTest с HitTestFilterCallback помощью значения.The following example shows how to invoke HitTest by using a HitTestFilterCallback value. Также определяется соответствующий метод обратного вызова проверки попадания.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

В следующем примере показано, как вернуть HitTestFilterBehavior значение из метода обратного вызова фильтра проверки попадания.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

Комментарии

Метод обратного вызова фильтра проверки попадания вызывается для всех визуальных объектов, которые сопоставляются с критериями проверки попадания, начиная с указанного визуального элемента и заканчивая его ветвью визуального дерева.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. Однако, может понадобиться пропустить отдельные части визуального дерева в функции обратного вызова результатов проверки нажатия.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. Возвращаемое значение функции обратного вызова фильтра проверки нажатия определяет, какой тип действия должен выполняться при перечислении визуальных объектов.The return value of the hit test filter callback function determines what type of action the enumeration of the visual objects should take. Например, при возврате значения ContinueSkipSelfAndChildrenможно удалить текущий визуальный объект и его потомков из перечисления результатов проверки попадания.For example, if you return the value, ContinueSkipSelfAndChildren, you can remove the current visual object and its descendants from the hit test results enumeration. Это означает, что метод обратного вызова результатов проверки попадания не будет видеть эти объекты в своем перечислении.This means that the hit test results callback method will not see these objects in its enumeration.

Примечание

Обрезка визуального дерева объектов позволяет уменьшить объем обработки во время перечисления результатов проверки попадания.Pruning the visual tree of objects decreases the amount of processing during the hit test results enumeration pass.

![Удаление визуального дерева с помощью фильтра проверки попадания] (~/add/media/filteredvisualtree-01.png "Удаление визуального дерева с помощью фильтра проверки попадания")Pruning a visual tree using a hit test filter
Обрезка визуального дереваPruning a visual tree

Методы расширения

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

Получает объект, представляющий метод, представленный указанным делегатом.Gets an object that represents the method represented by the specified delegate.

Применяется к

Дополнительно