Freigeben über


HitTestResultCallback Delegat

Definition

Stellt einen Rückruf dar, der zum Anpassen von Treffertests verwendet wird. WPF ruft den HitTestResultCallback auf, um dem Benutzer die Treffertest-Schnittpunkte zu melden.

public delegate System::Windows::Media::HitTestResultBehavior HitTestResultCallback(HitTestResult ^ result);
public delegate System.Windows.Media.HitTestResultBehavior HitTestResultCallback(HitTestResult result);
type HitTestResultCallback = delegate of HitTestResult -> HitTestResultBehavior
Public Delegate Function HitTestResultCallback(result As HitTestResult) As HitTestResultBehavior 

Parameter

result
HitTestResult

Der HitTestResult-Wert, der ein von einem Treffertest zurückgegebenes visuelles Objekt darstellt.

Rückgabewert

HitTestResultBehavior

Ein HitTestFilterBehavior, das die Aktion darstellt, die sich aus dem Treffertest ergibt .

Beispiele

Im folgenden Beispiel wird gezeigt, wie sie mithilfe eines HitTestResultCallback Werts aufgerufen HitTest werden. Die entsprechende Rückrufmethode für den Treffertest wird ebenfalls definiert.

// Capture the mouse event and hit test the coordinate point value against
// the child visual objects.
void MyVisualHost_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    // Retrieve the coordinates of the mouse button event.
    System.Windows.Point pt = e.GetPosition((UIElement)sender);

    // Initiate the hit test by setting up a hit test result callback method.
    VisualTreeHelper.HitTest(this, null, new HitTestResultCallback(myCallback), new PointHitTestParameters(pt));
}

// If a child visual object is hit, toggle its opacity to visually indicate a hit.
public HitTestResultBehavior myCallback(HitTestResult result)
{
    if (result.VisualHit.GetType() == typeof(DrawingVisual))
    {
        if (((DrawingVisual)result.VisualHit).Opacity == 1.0)
        {
            ((DrawingVisual)result.VisualHit).Opacity = 0.4;
        }
        else
        {
            ((DrawingVisual)result.VisualHit).Opacity = 1.0;
        }
    }

    // Stop the hit test enumeration of objects in the visual tree.
    return HitTestResultBehavior.Stop;
}
' Capture the mouse event and hit test the coordinate point value against
' the child visual objects.
Private Sub MyVisualHost_MouseLeftButtonUp(ByVal sender As Object, ByVal e As MouseButtonEventArgs)
    ' Retrieve the coordinates of the mouse button event.
    Dim pt As Point = e.GetPosition(CType(sender, UIElement))

    ' Initiate the hit test by setting up a hit test result callback method.
    VisualTreeHelper.HitTest(Me, Nothing, New HitTestResultCallback(AddressOf myCallback), New PointHitTestParameters(pt))
End Sub

' If a child visual object is hit, toggle its opacity to visually indicate a hit.
Public Function myCallback(ByVal result As HitTestResult) As HitTestResultBehavior
    If result.VisualHit.GetType() Is GetType(DrawingVisual) Then
        If (CType(result.VisualHit, DrawingVisual)).Opacity = 1.0 Then
            CType(result.VisualHit, DrawingVisual).Opacity = 0.4
        Else
            CType(result.VisualHit, DrawingVisual).Opacity = 1.0
        End If
    End If

    ' Stop the hit test enumeration of objects in the visual tree.
    Return HitTestResultBehavior.Stop
End Function

Hinweise

Die Rückrufmethode für den Treffertest definiert die Aktionen, die Sie ausführen, wenn ein Treffertest auf einem bestimmten visuellen Objekt in der visuellen Struktur identifiziert wird. Nachdem Sie die Aktionen ausgeführt haben, wird erwartet, dass Ihr Rückruf einen HitTestResultBehavior Wert zurückgibt, der bestimmt, ob das Durchlaufen der visuellen Struktur für alle anderen visuellen Objekte fortgesetzt werden soll.

Erweiterungsmethoden

GetMethodInfo(Delegate)

Ruft ein Objekt ab, das die Methode darstellt, die vom angegebenen Delegaten dargestellt wird.

Gilt für