【发布时间】:2012-10-05 20:00:00
【问题描述】:
我有一个自定义 UserControl,它的位置绑定到 ViewModel 中的参数。
<Canvas Name="CursorCanvas">
<ctrl:HandCursor x:Name="RightHandCursor" State="{Binding RightHandState}" Visibility="{Binding IsHandTracking, Converter={StaticResource BoolToVisibilityConverter}}" Canvas.Top="{Binding RightHandY}" Canvas.Left="{Binding RightHandX}" />
</Canvas>
在这个控件内部,我正在执行 HitTest,以确定它下面的内容。当前,此 HitTest 连接到 DispatcherTimer ta 1 秒间隔。我宁愿告诉控件在 Canvas 上移动时执行 HitTest,但我无法找到如何在正在移动的 UserControl 中捕获 Canvas 位置更新。
如何在上面定义的“HandCursor”用户控件的代码隐藏中捕获 Canvas.Top/Left 移动更新?
非常感谢!
【问题讨论】:
-
真的需要从光标本身跟踪光标的位置吗?你不能使用画布上的 MouseMove 事件来跟踪画布上的位置吗?
-
我没有使用鼠标。这是一个自定义控件,其 x/y 通过不同的输入设备(具体来说是 Kinect)进行更新。
标签: c# wpf wpf-controls hittest