IntersectionDetail 枚举

定义

提供有关 GeometryHitTestParameters 中的几何图形与点击过的可视对象之间的交集的信息。Provides information about the intersection between the geometries in the GeometryHitTestParameters and the visual which was hit.

public enum class IntersectionDetail
public enum IntersectionDetail
type IntersectionDetail = 
Public Enum IntersectionDetail
继承
IntersectionDetail

字段

Empty 1

Geometry 命中测试参数与目标可视对象(即几何图形)不相交。The Geometry hit test parameter and the target visual, or geometry, do not intersect.

FullyContains 3

Geometry 命中测试参数完全包含在目标可视对象(即几何图形)的边界内。The Geometry hit test parameter is fully contained within the boundary of the target visual or geometry.

FullyInside 2

目标可视对象(即几何图形)完全位于 Geometry 命中测试参数内。The target visual, or geometry, is fully inside the Geometry hit test parameter.

Intersects 4

Geometry 命中测试参数与目标可视对象(即几何图形)相交。The Geometry hit test parameter and the target visual, or geometry, intersect. 这意味着两个元素重叠,但任何一个元素都不包含对方。This means that the two elements overlap, but neither element contains the other.

NotCalculated 0

不计算 IntersectionDetail 值。The IntersectionDetail value is not calculated.

示例

下面的示例演示如何使用IntersectionDetailGeometryHitTestResult属性。The following example shows how to use the IntersectionDetail property of GeometryHitTestResult.

// Return the result of the hit test to the callback.
public HitTestResultBehavior MyHitTestResultCallback(HitTestResult result)
{
    // Retrieve the results of the hit test.
    IntersectionDetail intersectionDetail = ((GeometryHitTestResult)result).IntersectionDetail;

    switch (intersectionDetail)
    {
        case IntersectionDetail.FullyContains:

            // Add the hit test result to the list that will be processed after the enumeration.
            hitResultsList.Add(result.VisualHit);

            return HitTestResultBehavior.Continue;

        case IntersectionDetail.Intersects:

            // Set the behavior to return visuals at all z-order levels.
            return HitTestResultBehavior.Continue;

        case IntersectionDetail.FullyInside:

            // Set the behavior to return visuals at all z-order levels.
            return HitTestResultBehavior.Continue;

        default:
            return HitTestResultBehavior.Stop;
    }
}
' Return the result of the hit test to the callback.
Public Function MyHitTestResultCallback(ByVal result As HitTestResult) As HitTestResultBehavior
    ' Retrieve the results of the hit test.
    Dim intersectionDetail As IntersectionDetail = (CType(result, GeometryHitTestResult)).IntersectionDetail

    Select Case intersectionDetail
        Case IntersectionDetail.FullyContains

            ' Add the hit test result to the list that will be processed after the enumeration.
            hitResultsList.Add(result.VisualHit)

            Return HitTestResultBehavior.Continue

        Case IntersectionDetail.Intersects

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

        Case IntersectionDetail.FullyInside

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

        Case Else
            Return HitTestResultBehavior.Stop
    End Select
End Function

注解

下图显示了命中测试几何 (蓝色圆圈) 与可视几何 (红色正方形) 之间的关系。The following illustration shows the relationship between the hit test geometry (the blue circle) and the visual geometry (the red square).

命中测试中使用的 System.windows.media.geometryhittestresult.intersectiondetail 关系图Diagram of IntersectionDetail used in hit testing
命中测试几何和在命中测试期间的视觉几何之间的交集Intersection between hit test geometry and visual geometry during hit testing

适用于