【问题标题】:WPF hit testing UserControl and geometryWPF 命中测试 UserControl 和几何
【发布时间】:2012-05-03 12:33:10
【问题描述】:

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

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

我的回答基于第三个回复。 Problem with VisualTreeHelper.HitTest in WPF

这是什么意思

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

【问题讨论】:

    标签: wpf vb.net hittest


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢我改变了我的 hittestmethod 但没有看被覆盖方法的参数。
    猜你喜欢
    • 1970-01-01
    • 2023-03-10
    • 2010-10-27
    • 1970-01-01
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    相关资源
    最近更新 更多