HitTestFilterCallback Delegar
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa o método de callback que especifica partes da árvore visual a omitir no processamento do teste de acerto.
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
Parâmetros
- potentialHitTestTarget
- DependencyObject
O visual para testar o sucesso.
Devolver Valor
A HitTestFilterBehavior que representa a ação resultante do teste de acerto.
Exemplos
O exemplo seguinte mostra como invocar HitTest usando um HitTestFilterCallback valor. Também é definido o método correspondente de callback no teste de sucesso.
// 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
O exemplo seguinte mostra como devolver um HitTestFilterBehavior valor de um método de callback de filtro de teste de acerto.
// 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
Observações
O método de callback do filtro do teste de acerto é invocado para todos os objetos visuais que correspondem aos critérios do teste de sucesso, começando pelo visual que especifica e descendo pelo seu ramo da árvore visual. No entanto, você pode querer ignorar certos ramos da árvore visual que você não está interessado em processar em sua função de retorno de chamada de resultados de teste de acerto. O valor de retorno da função de retorno de chamada do filtro de teste de acerto determina o tipo de ação que a enumeração dos objetos visuais deve executar. Por exemplo, se devolver o valor , ContinueSkipSelfAndChildrenpode remover o objeto visual atual e os seus descendentes da enumeração de resultados do teste de acerto. Isto significa que o método de callback dos resultados do teste de acerto não verá estes objetos na sua enumeração.
Note
A poda da árvore visual de objetos diminui a quantidade de processamento durante o processo de enumeração dos resultados do teste de colisão.
Poda de uma árvore visual
Métodos da Extensão
| Name | Description |
|---|---|
| GetMethodInfo(Delegate) |
Obtém um objeto que representa o método representado pelo delegado especificado. |