3

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

游戏运行良好,直到我进入 Silverlight 部分并将 GestureListener 添加到图像中。之后,当我回到游戏时,它就会滞后。

我已经检查过,只有在 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对每个接触点进行大量处理。

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

4

1 回答 1

2

您是否尝试过在适当的时候使用“-=”来结束事件?

于 2013-06-18T15:36:03.473 回答