Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight 如何删除或处置GestureListener WP7_Silverlight_Windows Phone 7_Xna - Fatal编程技术网

Silverlight 如何删除或处置GestureListener WP7

Silverlight 如何删除或处置GestureListener WP7,silverlight,windows-phone-7,xna,Silverlight,Windows Phone 7,Xna,我有一个Silverlight/XNA应用程序,其中我在图像控件中添加了一个手势监听器。在XNA我有一个游戏 游戏运行良好,直到我转到Silverlight部分并将GestureListener添加到图像中。在那之后,当我回到比赛中,它落后了 我已经检查过了,只有在Silverlight中将GestureListener添加到图像后,游戏才开始滞后 Image newTroll = new Image(); newTroll.Stretch = Stretch.None; newTroll.So

我有一个Silverlight/XNA应用程序,其中我在图像控件中添加了一个手势监听器。在XNA我有一个游戏

游戏运行良好,直到我转到Silverlight部分并将GestureListener添加到图像中。在那之后,当我回到比赛中,它落后了

我已经检查过了,只有在Silverlight中将GestureListener添加到图像后,游戏才开始滞后

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);
Image newTroll=newimage();
newTroll.Stretch=Stretch.None;
newTroll.Source=图像;
新辊边=新厚度(10,10,0,0);
newTroll.renderTransferMorigin=新点(0.5,0.5);
newTroll.CacheMode=新的位图缓存();
newTroll.RenderTransform=新的CompositeTransform();
newTroll.MouseEnter+=新的MouseEventHandler(newTroll\u MouseEnter);
var gesturestener=GestureService.getgesturestener(newTroll);
gestureListener.PinchStarted+=新事件处理程序(gestureListener\u PinchStarted);
gestureListener.PinchDelta+=新事件处理程序(gestureListener_PinchDelta);
gestureListener.PinchCompleted+=新事件处理程序(gestureListener\u PinchCompleted);
gestureListener.DragStarted+=新事件处理程序(gestureListener\u DragStarted);
gestureListener.DragDelta+=新事件处理程序(gestureListener_DragDelta);
gestureListener.DragCompleted+=新事件处理程序(gestureListener\u DragCompleted);
我已经搜索过了,但没有找到解决这个问题的方法

更新

我刚读了这篇文章,所以我真的很困惑

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


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

您是否尝试在适当的时候使用“-=”退出该活动?

链接到msdn上的线程:尝试将其放入方法:protected override void on navigated from(System.Windows.Navigation.NavigationEventArgs e){base.OnNavigatedFrom(e);//删除侦听器}