Skip to main content
GeometryHitTestParameters Class
 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Specifies a Geometry as the parameter to be used for hit testing a visual tree.

Namespace:   System.Windows.Media
Assembly:  PresentationCore (in PresentationCore.dll)

SystemObject
   System.Windows.MediaHitTestParameters
    System.Windows.MediaGeometryHitTestParameters

public class GeometryHitTestParameters : HitTestParameters
public ref class GeometryHitTestParameters : HitTestParameters
type GeometryHitTestParameters = 
    class
        inherit HitTestParameters
    end
Public Class GeometryHitTestParameters
	Inherits HitTestParameters
NameDescription
System_CAPS_pubmethod GeometryHitTestParameters

Initializes a new instance of the GeometryHitTestParameters class, using the specified Geometry.

NameDescription
System_CAPS_pubproperty

Gets the Geometry that defines the hit test geometry for this GeometryHitTestParameters instance.

NameDescription
System_CAPS_pubmethod Equals

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_protmethod Finalize

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethod GetHashCode

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethod GetType

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_protmethod MemberwiseClone

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethod ToString

Returns a string that represents the current object.(Inherited from Object.)

With the GeometryHitTestParameters class, you can use a Geometry value for hit testing, to determine whether any visual object intersects with the Geometry value.

You can also hit test with a Point value by creating a PointHitTestParameters object.

System_CAPS_noteNote

Windows Presentation Foundation (WPF) hit testing only considers the filled area of a geometry during a hit test. If you create a point Geometry, the hit test would not intersect anything because a point has no area.

The following example shows how to set up a hit test using GeometryHitTestParameters for the HitTest method. The Point value that is passed to the OnMouseDown method is used to create a Geometry object in order to expand the range of the hit test.

// Respond to the mouse button down event by setting up a hit test results callback.
private void OnMouseDown(object sender, MouseButtonEventArgs e)
{
    // Retrieve the coordinate of the mouse position.
    Point pt = e.GetPosition((UIElement)sender);

    // Expand the hit test area by creating a geometry centered on the hit test point.
    EllipseGeometry expandedHitTestArea = new EllipseGeometry(pt, 10.0, 10.0);

    // 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(myControl, null,
        new HitTestResultCallback(MyHitTestResultCallback),
        new GeometryHitTestParameters(expandedHitTestArea));

    // Perform actions on the hit test results list.
    if (hitResultsList.Count > 0)
    {
        ProcessHitTestResultsList();
    }
}
' Respond to the mouse button down event by setting up a hit test results callback.
Private Overloads Sub OnMouseDown(ByVal sender As Object, ByVal e As MouseButtonEventArgs)
	' Retrieve the coordinate of the mouse position.
	Dim pt As Point = e.GetPosition(CType(sender, UIElement))

	' Expand the hit test area by creating a geometry centered on the hit test point.
	Dim expandedHitTestArea As New EllipseGeometry(pt, 10.0, 10.0)

	' 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(myControl, Nothing, New HitTestResultCallback(AddressOf MyHitTestResultCallback), New GeometryHitTestParameters(expandedHitTestArea))

	' Perform actions on the hit test results list.
	If hitResultsList.Count > 0 Then
		ProcessHitTestResultsList()
	End If
End Sub

The property of GeometryHitTestResult provides information about the results of a hit test that uses a Geometry as a hit test parameter. The following illustration shows the relationship between the hit test geometry (the blue circle) and the target object (the red square).

Diagram of IntersectionDetail used in hit testing

Intersection between hit test geometry and target object

.NET Framework
Available since 3.0

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top