我正在创建桌面应用程序,导航将使用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,如果这有所不同。
答案 0 :(得分:0)
我终于找到了修复绑定问题的方法。
当我离开页面时,我刚刚清除了绑定:
BindingOperations.ClearBinding(this.kinectRegion, KinectRegion.KinectSensorProperty);
如果有人遇到此内存问题,请访问this page以查看WPF如何实际处理页面转换,这实际上是我的真正问题。