我有Silverlight / XNA应用程序,其中向图像控件添加了GestureListener。在XNA中,我有一个游戏。

在我转到Silverlight部分并将GestureListener添加到Image之前,游戏运行正常。之后,当我回到游戏中时,它会滞后。

我已经检查过,仅在将Silverlight中的GestureListener添加到Image之后,游戏才开始滞后。

Image newTroll = new Image();
newTroll.Stretch = Stretch.None;
newTroll.Source = image;

newTroll.Margin = new Thickness(10,10,0,0);
newTroll.RenderTransformOrigin = new Point(0.5, 0.5);
newTroll.CacheMode = new BitmapCache();
newTroll.RenderTransform = new CompositeTransform();
newTroll.MouseEnter += new MouseEventHandler(newTroll_MouseEnter);

var gestureListener = GestureService.GetGestureListener(newTroll);

gestureListener.PinchStarted += new EventHandler<PinchStartedGestureEventArgs>(gestureListener_PinchStarted);
gestureListener.PinchDelta += new EventHandler<PinchGestureEventArgs>(gestureListener_PinchDelta);
gestureListener.PinchCompleted += new EventHandler<PinchGestureEventArgs>(gestureListener_PinchCompleted);

gestureListener.DragStarted += new EventHandler<DragStartedGestureEventArgs>(gestureListener_DragStarted);
gestureListener.DragDelta += new EventHandler<DragDeltaGestureEventArgs>(gestureListener_DragDelta);
gestureListener.DragCompleted += new EventHandler<DragCompletedGestureEventArgs>(gestureListener_DragCompleted);


我已经搜索过但没有找到解决此问题的任何方法

更新资料

我刚刚读了这篇,所以我很困惑

“内部开发人员报告说,显然GestureService对Touch.FrameReported事件具有静态订阅,该事件在每个TouchPoint上都进行了大量处理。

但是似乎永远都不会取消订阅该活动,因此即使您不再主动使用该服务,也要为此付费。”

最佳答案

您是否曾尝试在适当的时候使用“-=”来结束活动?

关于silverlight - 如何删除或处置GestureListener WP7,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11897891/

10-09 18:21