我只想在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
答案 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