Silverlight 在其中拖动图像';什么是父边界?

Silverlight 在其中拖动图像';什么是父边界?,silverlight,drag,behavior,Silverlight,Drag,Behavior,我已经创建了图像查看器控件,可以放大/缩小图像,当图像放大并大于其查看器(您无法看到所有图像)时,我提供了使用“TranslateTransform”拖动图像的功能(类似于Windows Photo viewer),但我希望图像在边界处停止拖动(左或右或左或下)出现时,我已经计算了第四面的宽度和高度,它的工作很好,但是当你以速度拖动图像时,它会在它的边框通过它的容器边框后停止,距离会以更大的拖动速度增加。例如:在“Windows照片查看器”“并缩放它,然后拖动它,当您到达它的边界时,它将停止”

我已经创建了图像查看器控件,可以放大/缩小图像,当图像放大并大于其查看器(您无法看到所有图像)时,我提供了使用“TranslateTransform”拖动图像的功能(类似于Windows Photo viewer),但我希望图像在边界处停止拖动(左或右或左或下)出现时,我已经计算了第四面的宽度和高度,它的工作很好,但是当你以速度拖动图像时,它会在它的边框通过它的容器边框后停止,距离会以更大的拖动速度增加。例如:在“Windows照片查看器”“并缩放它,然后拖动它,当您到达它的边界时,它将停止”

所以我想让图像在边界出现的时候停止,不管拖动速度如何

感谢你的帮助,
致以最诚挚的问候。

您的代码似乎有问题。在计算平移变换的参数时,您能应用范围检查以避免在区域外移动图片吗?

这是我的代码我有图像(名称:imgView)、内网格(名称:grdImage)、我想要图像(缩放图像)要使用鼠标移动,请在网格内部移动,当其边界到达网格边界时停止,就像“Windows照片查看器”
。仅供参考:Im使用scaleTransform缩放图像:

Private Sub imgView_MouseLeftButtonDown(ByVal sender As Object, ByVal e As MouseButtonEventArgs)
    _IsMouseCapture = True
    imgView.CaptureMouse()
    Dim tt = DirectCast(DirectCast(imgView.RenderTransform, TransformGroup).Children.First(Function(tr) TypeOf tr Is TranslateTransform), TranslateTransform)
    start = e.GetPosition(grdImage)
    origin = New Point(tt.X, tt.Y)
End Sub

Private Sub imgView_MouseLeftButtonUp(ByVal sender As Object, ByVal e As MouseButtonEventArgs)
    _IsMouseCapture = False
    imgView.ReleaseMouseCapture()
End Sub

 Private Sub imgView_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs)
    If (Not _IsMouseCapture) Then
        Return
    End If

    Dim tt = DirectCast(DirectCast(imgView.RenderTransform, TransformGroup).Children.First(Function(tr) TypeOf tr Is TranslateTransform), TranslateTransform)
    Dim vx As Double = start.X - e.GetSafePosition(grdImage).X
    Dim vy As Double = start.Y - e.GetSafePosition(grdImage).Y
    tt.Y = origin.Y - vy
    tt.X = origin.X - vx
End Sub`

由于您调用CaptureMouse,即使鼠标在控件之外,控件也会收到鼠标消息。您必须验证X和Y坐标,以确保您没有将对象移动到区域之外。您是否能够解决此问题?