鼠标拖拽过程

单击鼠标时    

 '得到需要拖拽的对象 ,修改此处   

Dim item As Rectangle = sender
        '获取鼠标当前位置
        mouseVerticalPosition = e.GetPosition(Nothing).Y
        mouseHorizontalPosition = e.GetPosition(Nothing).X
        '启用鼠标捕获
        isMouseCaptured = True
        '将鼠标捕获设置为 UIElement
        item.CaptureMouse()

 

移动鼠标时

 

松开鼠标时

 

 

Private Sub RectAClick(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs)
        '若已经处理过, 则不处理
        e.Handled = True
        Me.statusTextBlock.Text = "x:y=" & e.GetPosition(Me.ParentCanvas).ToString & ".RectA is Click,not BubbleUp"
    End Sub

    Dim isMouseCaptured As Boolean
    Dim mouseVerticalPosition As Double
    Dim mouseHorizontalPosition As Double

    Private Sub Rect_Handle_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs)
        Dim item As Rectangle = sender
        '获取鼠标当前位置
        mouseVerticalPosition = e.GetPosition(Nothing).Y
        mouseHorizontalPosition = e.GetPosition(Nothing).X
        '启用鼠标捕获
        isMouseCaptured = True
        '将鼠标捕获设置为 UIElement
        item.CaptureMouse()
    End Sub

    Private Sub Rect_Handle_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseEventArgs)
        Dim item As Rectangle = sender
        If (isMouseCaptured) Then
            ' 计算对象的当前位置
            Dim deltaV As Double = e.GetPosition(Nothing).Y - mouseVerticalPosition
            Dim deltaH As Double = e.GetPosition(Nothing).X - mouseHorizontalPosition
            Dim newTop As Double = deltaV + item.GetValue(Canvas.TopProperty)
            Dim newLeft As Double = deltaH + item.GetValue(Canvas.LeftProperty)

            ' 设置对象新位置
            item.SetValue(Canvas.TopProperty, newTop)
            item.SetValue(Canvas.LeftProperty, newLeft)

            ' Update position global variables.
            mouseVerticalPosition = e.GetPosition(Nothing).Y
            mouseHorizontalPosition = e.GetPosition(Nothing).X
        End If

    End Sub

    Private Sub Rect_Handle_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs)
        Dim item As Rectangle = sender
        isMouseCaptured = False
        item.ReleaseMouseCapture()
        mouseVerticalPosition = -1
        mouseHorizontalPosition = -1
    End Sub

 

 

 

转载于:https://www.cnblogs.com/wmt1708/archive/2009/03/22/1418734.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值