HitTestFilterCallback Temsilci

Tanım

İsabet testi işlemesinden atlanabilecek görsel ağacının bölümlerini belirten geri çağırma yöntemini temsil eder.

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 

Parametreler

potentialHitTestTarget
DependencyObject

Teste isabet etmek için görsel.

Dönüş Değeri

HitTestFilterBehavior

HitTestFilterBehavior İsabet testinden kaynaklanan eylemi temsil eden bir.

Örnekler

Aşağıdaki örnekte, bir HitTestFilterCallback değer kullanılarak nasıl çağrıldığı HitTest gösterilmektedir. Karşılık gelen isabet testi geri çağırma yöntemi de tanımlanır.

// 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

Aşağıdaki örnekte, isabet testi filtre geri çağırma yönteminden bir değerin nasıl döndürüleceği HitTestFilterBehavior gösterilmektedir.

// 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

Açıklamalar

İsabet testi filtresi geri çağırma yöntemi, belirttiğiniz görselden başlayıp görsel ağacının dalı aracılığıyla azalan olarak isabet testi ölçütlerine eşlenen tüm görsel nesneler için çağrılır. Ancak, isabet testi sonuçları geri çağırma işlevinizde işlemek istemediğiniz görsel ağacının belirli dallarını yoksaymak isteyebilirsiniz. İsabet testi filtre geri çağırma işlevinin dönüş değeri, görsel nesnelerin numaralandırmasının ne tür bir eylem gerçekleştirmesi gerektiğini belirler. Örneğin, ContinueSkipSelfAndChildrendeğerini döndürürseniz, geçerli görsel nesnesini ve alt öğelerini isabet testi sonuçları numaralandırmasından kaldırabilirsiniz. Bu, isabet testi sonuçları geri çağırma yönteminin bu nesneleri numaralandırmasında göremeyeceği anlamına gelir.

Not

Nesnelerin görsel ağacının ayıklaması, isabet testi sonuçları numaralandırma geçişi sırasında işleme miktarını azaltır.

İsabet testi filtresi kullanarak görsel ağacı ayıklama
Görsel ağacı ayıklama

Uzantı Metotları

GetMethodInfo(Delegate)

Belirtilen temsilci tarafından temsil edilen yöntemi temsil eden bir nesnesi alır.

Şunlara uygulanır

Ayrıca bkz.