在页面之间导航时增加内存使用量 - WPF - Kinect SDK 1.7

时间:2013-07-04 14:37:00

标签: c# wpf kinect kinect-sdk

我正在创建桌面应用程序,导航将使用Kinect完成。 (我正在使用1.7 SDK中引入的新交互。)

我关注了tutorial 我也注意到一些用户抱怨这个内存问题。

为了能够用手导航,您需要在表单上使用Kinect区域,并且需要将传感器绑定到该区域。

// Bind the sensor chooser's current sensor to the KinectRegion 
var regionSensorBinding = new Binding("Kinect") { Source = this.sensorChooser }; 
BindingOperations.SetBinding(this.kinectRegion, KinectRegion.KinectSensorProperty, regionSensorBinding);

我将内存问题缩小到这两行。

每次我改变页面时:

(Application.Current.MainWindow.FindName("_mainFrame") as Frame).Source = new Uri("MainMenu.xaml", UriKind.Relative);

内存使用量增加(这是可以理解的),但它永远不会下降。

该部分代码位于每个新页面上,以将我的传感器绑定到该页面的kinect区域。

关于为什么会这样或者我如何纠正这个问题的任何想法?

PS:我正在使用教程中的KinectSensorChooser,如果这有所不同。

1 个答案:

答案 0 :(得分:0)

我终于找到了修复绑定问题的方法。

当我离开页面时,我刚刚清除了绑定:

BindingOperations.ClearBinding(this.kinectRegion, KinectRegion.KinectSensorProperty);

如果有人遇到此内存问题,请访问this page以查看WPF如何实际处理页面转换,这实际上是我的真正问题。