C# 使用Gestureservice转换画布中的矩形
我在翻译画布中的矩形时遇到了一个小问题。 我想做的是根据用户的手指位置移动矩形。这是我的XAML:C# 使用Gestureservice转换画布中的矩形,c#,silverlight,windows-phone-7,C#,Silverlight,Windows Phone 7,我在翻译画布中的矩形时遇到了一个小问题。 我想做的是根据用户的手指位置移动矩形。这是我的XAML: <Canvas Margin="100" Height="100" Width="300"> <Rectangle Fill="Orange" Width="100" x:Name="rect" Height="100" > <toolkit:GestureService.
<Canvas Margin="100" Height="100" Width="300">
<Rectangle Fill="Orange" Width="100" x:Name="rect" Height="100" >
<toolkit:GestureService.GestureListener>
<toolkit:GestureListener DragDelta="GestureListener_DragDelta"/>
</toolkit:GestureService.GestureListener>
</Rectangle>
</Canvas>
当我运行应用程序时,它的表现非常有趣,当我向左或向右移动矩形时,它会振动。
有人知道错误在哪里吗?
谢谢。我做了更多的研究,找到了更好的方法。 在我看了这个之后,我做了一些修改,在XAML中得到了这个:
<Canvas Margin="100" Height="100" Width="300">
<Rectangle Fill="Orange" Width="100" x:Name="rect" Height="100"
MouseLeftButtonDown="mouseDown"
MouseLeftButtonUp="mouseUp"
MouseMove="mouseMove"/>
</Canvas>
<Canvas Margin="100" Height="100" Width="300">
<Rectangle Fill="Orange" Width="100" x:Name="rect" Height="100"
MouseLeftButtonDown="mouseDown"
MouseLeftButtonUp="mouseUp"
MouseMove="mouseMove"/>
</Canvas>
bool isClicked = false;
double rectPosition;
private void mouseDown(object sender, MouseButtonEventArgs e)
{
isClicked = true;
rectPosition = e.GetPosition(null).X;
rect.CaptureMouse();
}
private void mouseUp(object sender, MouseButtonEventArgs e)
{
isClicked = false;
}
private void mouseMove(object sender, MouseEventArgs e)
{
double position = e.GetPosition(null).X - rectPosition;
double newPosition = position + (double)rect.GetValue(Canvas.LeftProperty);
rect.SetValue(Canvas.LeftProperty, newPosition);
rectPosition = e.GetPosition(null).X;
}