滑鼠拖拽過程

來源:互聯網
上載者:User

單擊滑鼠時    

 '得到需要拖拽的對象 ,修改此處   

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

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.