HitTestFilterCallback Gedelegeerde
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vertegenwoordigt de callback-methode waarmee onderdelen van de visualstructuur worden opgegeven die moeten worden weggelaten uit de verwerking van de hittest.
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
Parameters
- potentialHitTestTarget
- DependencyObject
De visual die moet worden getest.
Retourwaarde
Een HitTestFilterBehavior die de actie vertegenwoordigt die het resultaat is van de hittest.
Voorbeelden
In het volgende voorbeeld ziet u hoe u aanroept HitTest met behulp van een HitTestFilterCallback waarde. De bijbehorende callbackmethode voor hittests wordt ook gedefinieerd.
// 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
In het volgende voorbeeld ziet u hoe u een HitTestFilterBehavior waarde retourneert van een callbackmethode voor het hittestfilter.
// 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
Opmerkingen
De callbackmethode hittestfilter wordt aangeroepen voor alle visualobjecten die zijn toegewezen aan de criteria voor de hittest, te beginnen met de visual die u opgeeft en aflopend door de vertakking van de visualstructuur. U kunt echter bepaalde vertakkingen van de visuele structuur negeren die u niet wilt verwerken in de callback-functie voor hittestresultaten. De retourwaarde van de callbackfunctie voor het hittestfilter bepaalt welk type actie de enumeratie van de visuele objecten moet uitvoeren. Als u bijvoorbeeld de waarde retourneert, ContinueSkipSelfAndChildrenkunt u het huidige visuele object en de onderliggende elementen ervan verwijderen uit de opsomming van de resultaten van de hittest. Dit betekent dat de callback-methode voor hittestresultaten deze objecten niet in de opsomming ziet.
Note
Door de visuele boomstructuur van objecten te snoeien, wordt de hoeveelheid verwerking tijdens de opsomming van de resultaten van de hit-test verlaagd.
Een visuele boom verwijderen
Extensiemethoden
| Name | Description |
|---|---|
| GetMethodInfo(Delegate) |
Hiermee haalt u een object op dat de methode vertegenwoordigt die wordt vertegenwoordigd door de opgegeven gemachtigde. |