HitTestFilterCallback Делегат
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет метод обратного вызова, указывающий части визуального дерева, которые пропускают обработку теста попадания.
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
Визуальный элемент для попадания в тест.
Возвращаемое значение
Значение HitTestFilterBehavior , представляющее действие, полученное из теста попадания.
Примеры
В следующем примере показано, как вызвать HitTest с помощью HitTestFilterCallback значения. Также определен соответствующий метод обратного вызова теста попадания.
// 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 значение из метода обратного вызова фильтра попадания.
// 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
Комментарии
Метод обратного вызова фильтра попаданий вызывается для всех визуальных объектов, которые сопоставляются с критериями теста попадания, начиная с указанного визуального элемента и убывая по его ветвью визуального дерева. Однако вы можете захотеть игнорировать определенные ветви визуального дерева, которые вам неинтересны для обработки в вашей функции обратного вызова результатов теста попадания. Возвращаемое значение функции обратного вызова фильтра тестового попадания определяет, какие действия должны быть предприняты при перечислении визуальных объектов. Например, при возврате значения ContinueSkipSelfAndChildrenможно удалить текущий визуальный объект и его потомки из перечисления результатов теста попадания. Это означает, что метод обратного вызова результатов теста попадания не увидит эти объекты в его перечислении.
Note
Очистка визуального дерева объектов уменьшает объем обработки во время прохождения перечисления результатов теста попадания.
Очистка визуального дерева
Методы расширения
| Имя | Описание |
|---|---|
| GetMethodInfo(Delegate) |
Возвращает объект, представляющий метод, представленный указанным делегатом. |