C# 在一个事件中,您希望创建一个图像,在同一个函数中,您希望开始拖动该图像

C# 在一个事件中,您希望创建一个图像,在同一个函数中,您希望开始拖动该图像,c#,windows-phone-7,C#,Windows Phone 7,我有一个XAML格式的imagecanvas <Canvas Name="imgCanvas" > <Canvas.RenderTransform> <CompositeTransform TranslateX="0" TranslateY="0" CenterX="0" CenterY="0"></CompositeTransform> &l

我有一个XAML格式的imagecanvas

 <Canvas Name="imgCanvas" >
                <Canvas.RenderTransform>
                    <CompositeTransform TranslateX="0" TranslateY="0" CenterX="0" CenterY="0"></CompositeTransform>
                </Canvas.RenderTransform>



            </Canvas>

请向我建议任何方法,以便我可以将图像添加到画布,并能够在一次点击中拖动该图像。

您将无法在单个事件中执行此操作,因为您需要检测和响应两个截然不同的操作

首先,不要使用工具箱中的手势。它们已弃用,并且存在性能/内存问题

您应该能够通过鼠标事件来实现这一点。您需要做什么:
-鼠标向下移动后,只要在短时间内没有鼠标向上移动,就可以创建图像。
-创建图像后,通过更新图像的位置来响应mousemove事件,直到有鼠标向上移动

可能会有很多有趣的边缘案例需要处理,但我相信你会找到它们的

   g = GestureService.GetGestureListener(imgCanvas);
            g.DragStarted += new EventHandler<DragStartedGestureEventArgs>(g_DragStarted);
            g.DragDelta += new EventHandler<DragDeltaGestureEventArgs>(g_DragDelta);
            g.DragCompleted += new EventHandler<DragCompletedGestureEventArgs>(g_DragCompleted);
Ct.translateX+=e.GetPosition(layoutGrid).X;//not working

Ct.translateY+=e.GetPosition(layoutGrid).Y;