在Windows Phone应用程序中获取鼠标位置(ManipulationDelta)

时间:2014-05-04 21:49:58

标签: silverlight windows-phone-8 mouse

我只想在Silverlight Windows Phone应用程序中拥有相对的鼠标/手指位置

使用原始Silverlight Framework不起作用,因为MouseMove无法正确更新。 '的MouseMove'事件发射很少而不是“操纵”#39;事件。通过使用DeltaManipulation事件,所有工作都很快,但我无法计算相对于设备屏幕的位置。

示例:

如果用户点击屏幕中间(宽度/高度= 800/480),我想看到位置400,240。但ManipulationOrigin显示0,0

Private Sub PageEditor_ManipulationDelta(sender As Object, e As ManipulationDeltaEventArgs) Handles Me.ManipulationDelta
    Call DragItem(e.ManipulationOrigin)' > e.ManipulationOrigin is 0,0 
End Sub

1 个答案:

答案 0 :(得分:0)

尝试使用XNA和Silverlight方法之后,这个方法可以显示鼠标的位置,它也会显示相对于任何框架元素的位置,并具有高性能:

Private Touch As System.Windows.Input.Touch
Public Sub New()
    InitializeComponent()
    AddHandler System.Windows.Input.Touch.FrameReported, AddressOf Touch_FrameReported
End Sub


Private Sub Touch_FrameReported(sender As Object, e As TouchFrameEventArgs) 
    If Me.DragElement IsNot Nothing Then
        _MousePosition = e.GetPrimaryTouchPoint(Me.ucGameCanvas1).Position ' will return 400,240 as needed if user press in the middle of the screen
    End If
End Sub