在一个事件中想要创建一个图像并在同一个功能中想要开始拖动该图像

时间:2013-03-21 04:44:05

标签: c# windows-phone-7

我在XAML中有一个imagecanvas。

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



            </Canvas>

在类构造函数中,我将拖动事件添加到此画布

   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);

现在在1点击功能中,我正在动态创建图像,并添加为画布的子画面

点击事件完成后,我就可以拖动该图片了。

有没有办法让我可以使用保持类型功能..而不是使用水龙头我只能使用保持和保持功能而不用我的鼠标我可以拖动它。

我也尝试了mouseleftbuttondown和mousemove事件....但是在鼠标移动功能中我无法拖动它。

Ct.translateX+=e.GetPosition(layoutGrid).X;//not working

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

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

1 个答案:

答案 0 :(得分:0)

您将无法在单个事件中执行此操作,因为您要检测并响应两个非常不同的操作。

首先,不要使用Toolkit中的Gestures。它们已被弃用并存在性能/内存问题。

您应该可以使用鼠标事件执行此操作。你需要做什么:
- 在mousedown之后,只要移动很少并且在短时间内没有鼠标,就创建图像 - 创建图像后,通过更新图像的位置直到鼠标按下来响应mousemove事件。

可能会有很多有趣的边缘情况需要处理,但我相信你会找到它们。 ;)