1

我正在尝试在一个用户控件和另一个用户控件之间进行命中测试。我正在查看其他问题,发现我必须将它放在我的用户控件中。

Protected Overrides Function HitTestCore(hitTestParameters As System.Windows.Media.PointHitTestParameters) As System.Windows.Media.HitTestResult
Return New PointHitTestResult(Me, hitTestParameters.HitPoint)
End Function

我还有一个过滤器,它可以正确显示我想以某种方式进行命中测试的控件htcallback不起作用。

因为我无法使用我的用户控件进行命中测试,所以我在同一个位置制作了一个矩形并在我的命中测试中使用它。这似乎不起作用。

Dim hitTestGeometry = New RectangleGeometry()
hitTestGeometry.Rect = New Rect(_selected.breedte, _selected.hoogte, Canvas.GetLeft(_selected), Canvas.GetTop(_selected))
Dim pt As New Point
VisualTreeHelper.HitTest(WorkFlowCanvas, New HitTestFilterCallback(AddressOf wcFilter), New HitTestResultCallback(AddressOf verplaatsing), New GeometryHitTestParameters(hitTestGeometry))

我的回答基于第三个答复。 WPF 中 VisualTreeHelper.HitTest 的问题

他这是什么意思

如果你想对几何进行命中测试,你还需要覆盖第二个重载

4

1 回答 1

2

除了带有参数的HitTestCore之外,还有第二种带有参数PointHitTestParameters的方法HitTestCoreGeometryHitTestParameters

当您针对几何进行命中测试时,将调用第二个。

于 2012-05-03T13:59:21.650 回答