次の方法で共有


VisualTreeHelper.HitTest メソッド

定義

ヒット テストの最上位の Visual オブジェクトを返します。

オーバーロード

HitTest(Visual, Point)

Point を指定して、ヒット テストの最上位の Visual オブジェクトを返します。

HitTest(Visual3D, HitTestFilterCallback, HitTestResultCallback, HitTestParameters3D)

呼び出し元が定義した HitTestFilterCallback メソッドと HitTestResultCallback メソッドを使って、指定した Visual3D に対してヒット テストを開始します。

HitTest(Visual, HitTestFilterCallback, HitTestResultCallback, HitTestParameters)

呼び出し元が定義した HitTestFilterCallback メソッドと HitTestResultCallback メソッドを使って、指定した Visual に対してヒット テストを開始します。

注釈

パラメーターを受け取るHitTestResultCallbackHitTestFilterCallbackオーバーロードされたメソッドは、ヒット テスト中に追加の機能を提供します。

  • ヒット テスト中にビジュアル ツリートラバーサルの制御に参加できるようにします。

  • 最上位のビジュアルだけでなく、ポイントまたはジオメトリの下にあるすべてのビジュアルを取得できます。

HitTest(Visual, Point)

Point を指定して、ヒット テストの最上位の Visual オブジェクトを返します。

public:
 static System::Windows::Media::HitTestResult ^ HitTest(System::Windows::Media::Visual ^ reference, System::Windows::Point point);
public static System.Windows.Media.HitTestResult HitTest (System.Windows.Media.Visual reference, System.Windows.Point point);
static member HitTest : System.Windows.Media.Visual * System.Windows.Point -> System.Windows.Media.HitTestResult
Public Shared Function HitTest (reference As Visual, point As Point) As HitTestResult

パラメーター

reference
Visual

ヒット テストを行う対象の Visual

point
Point

ヒット テストの対象にするポイント値。

戻り値

HitTestResult

HitTestResult 型として返される Visual のヒット テスト結果。

次の例は、メソッドを使用して、オブジェクト HitTest 内のオブジェクトをヒット テストする方法を Canvas示しています。

// Respond to the left mouse button down event by initiating the hit test.
private void OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    // Retrieve the coordinate of the mouse position.
    Point pt = e.GetPosition((UIElement)sender);

    // Perform the hit test against a given portion of the visual object tree.
    HitTestResult result = VisualTreeHelper.HitTest(myCanvas, pt);

    if (result != null)
    {
        // Perform action on hit visual object.
    }
}
' Respond to the left mouse button down event by initiating the hit test.
Private Overloads Sub OnMouseLeftButtonDown(ByVal sender As Object, ByVal e As MouseButtonEventArgs)
    ' Retrieve the coordinate of the mouse position.
    Dim pt As Point = e.GetPosition(CType(sender, UIElement))

    ' Perform the hit test against a given portion of the visual object tree.
    Dim result As HitTestResult = VisualTreeHelper.HitTest(myCanvas, pt)

    If result IsNot Nothing Then
        ' Perform action on hit visual object.
    End If
End Sub

注釈

戻り値のプロパティは VisualHit 、ヒットしたオブジェクトを Visual 表します。

注意

2D ビジュアル ツリーで開始するヒット テストが返 RayHitTestResultされる可能性があります。これは、3D ヒット テストの結果オブジェクトです。 2D ビジュアル ツリーで開始されるヒット テストは、定義された 3D ビジュアル ツリーにシームレスに拡張されます。

こちらもご覧ください

適用対象

HitTest(Visual3D, HitTestFilterCallback, HitTestResultCallback, HitTestParameters3D)

呼び出し元が定義した HitTestFilterCallback メソッドと HitTestResultCallback メソッドを使って、指定した Visual3D に対してヒット テストを開始します。

public:
 static void HitTest(System::Windows::Media::Media3D::Visual3D ^ reference, System::Windows::Media::HitTestFilterCallback ^ filterCallback, System::Windows::Media::HitTestResultCallback ^ resultCallback, System::Windows::Media::Media3D::HitTestParameters3D ^ hitTestParameters);
public static void HitTest (System.Windows.Media.Media3D.Visual3D reference, System.Windows.Media.HitTestFilterCallback filterCallback, System.Windows.Media.HitTestResultCallback resultCallback, System.Windows.Media.Media3D.HitTestParameters3D hitTestParameters);
static member HitTest : System.Windows.Media.Media3D.Visual3D * System.Windows.Media.HitTestFilterCallback * System.Windows.Media.HitTestResultCallback * System.Windows.Media.Media3D.HitTestParameters3D -> unit
Public Shared Sub HitTest (reference As Visual3D, filterCallback As HitTestFilterCallback, resultCallback As HitTestResultCallback, hitTestParameters As HitTestParameters3D)

パラメーター

reference
Visual3D

ヒット テストを行う対象の Visual3D

filterCallback
HitTestFilterCallback

ヒット テスト フィルターのコールバック値を表すメソッド。

resultCallback
HitTestResultCallback

ヒット テスト結果のコールバック値を表すメソッド。

hitTestParameters
HitTestParameters3D

ヒット テストの対象にする 3D パラメーター値。

注釈

パラメーターを filterCallback 指定できます null。この場合、このパラメーターは無視されます。 そうでないnull場合filterCallbackは、前にresultCallback呼び出されます。 resultCallback として null を使用することはできません。

注意

2D ビジュアル ツリーで開始するヒット テストが返 RayHitTestResultされる可能性があります。これは、3D ヒット テストの結果オブジェクトです。 2D ビジュアル ツリーで開始されるヒット テストは、定義された 3D ビジュアル ツリーにシームレスに拡張されます。

適用対象

HitTest(Visual, HitTestFilterCallback, HitTestResultCallback, HitTestParameters)

呼び出し元が定義した HitTestFilterCallback メソッドと HitTestResultCallback メソッドを使って、指定した Visual に対してヒット テストを開始します。

public:
 static void HitTest(System::Windows::Media::Visual ^ reference, System::Windows::Media::HitTestFilterCallback ^ filterCallback, System::Windows::Media::HitTestResultCallback ^ resultCallback, System::Windows::Media::HitTestParameters ^ hitTestParameters);
public static void HitTest (System.Windows.Media.Visual reference, System.Windows.Media.HitTestFilterCallback filterCallback, System.Windows.Media.HitTestResultCallback resultCallback, System.Windows.Media.HitTestParameters hitTestParameters);
static member HitTest : System.Windows.Media.Visual * System.Windows.Media.HitTestFilterCallback * System.Windows.Media.HitTestResultCallback * System.Windows.Media.HitTestParameters -> unit
Public Shared Sub HitTest (reference As Visual, filterCallback As HitTestFilterCallback, resultCallback As HitTestResultCallback, hitTestParameters As HitTestParameters)

パラメーター

reference
Visual

ヒット テストを行う対象の Visual

filterCallback
HitTestFilterCallback

ヒット テスト フィルターのコールバック値を表すメソッド。

resultCallback
HitTestResultCallback

ヒット テスト結果のコールバック値を表すメソッド。

hitTestParameters
HitTestParameters

ヒット テストの対象にするパラメーター値。

次の例は、メソッドを使用して、オブジェクト HitTest 内のオブジェクトをヒット テストする方法を Canvas示しています。

// Respond to the right mouse button down event by setting up a hit test results callback.
private void OnMouseRightButtonDown(object sender, MouseButtonEventArgs 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, null,
        new HitTestResultCallback(MyHitTestResult),
        new PointHitTestParameters(pt));

    // Perform actions on the hit test results list.
    if (hitResultsList.Count > 0)
    {
        Console.WriteLine("Number of Visuals Hit: " + hitResultsList.Count);
    }
}
' Respond to the right mouse button down event by setting up a hit test results callback.
Private Overloads Sub OnMouseRightButtonDown(ByVal sender As Object, ByVal e As MouseButtonEventArgs)
    ' 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, Nothing, New HitTestResultCallback(AddressOf MyHitTestResult), New PointHitTestParameters(pt))

    ' Perform actions on the hit test results list.
    If hitResultsList.Count > 0 Then
        Console.WriteLine("Number of Visuals Hit: " & hitResultsList.Count)
    End If
End Sub
// Return the result of the hit test to the callback.
public HitTestResultBehavior MyHitTestResult(HitTestResult result)
{
    // Add the hit test result to the list that will be processed after the enumeration.
    hitResultsList.Add(result.VisualHit);

    // Set the behavior to return visuals at all z-order levels.
    return HitTestResultBehavior.Continue;
}
' Return the result of the hit test to the callback.
Public Function MyHitTestResult(ByVal result As HitTestResult) As HitTestResultBehavior
    ' Add the hit test result to the list that will be processed after the enumeration.
    hitResultsList.Add(result.VisualHit)

    ' Set the behavior to return visuals at all z-order levels.
    Return HitTestResultBehavior.Continue
End Function

注釈

パラメーターを filterCallback 指定 nullできます。この場合は無視されます。 そうでないnull場合filterCallbackは、前にresultCallback呼び出されます。 resultCallback として null を使用することはできません。

注意

2D ビジュアル ツリーで開始するヒット テストが返 RayHitTestResultされる可能性があります。これは、3D ヒット テストの結果オブジェクトです。 2D ビジュアル ツリーで開始されるヒット テストは、定義された 3D ビジュアル ツリーにシームレスに拡張されます。

こちらもご覧ください

適用対象