1

デスクトップ アプリケーションを作成しており、Kinect を使用してナビゲーションを行います。(1.7 SDK で導入された新しいインタラクションを使用しています)。

私はオンラインチュートリアルに従いました が、数人のユーザーがこのメモリの問題について不満を漏らしていることにも気付きました。

手でナビゲートできるようにするには、フォームに 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);

メモリの問題をこれらの 2 行に絞り込みました。

ページを変更するたびに:

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

メモリ使用量は増加しますが (これは理解できます)、減少することはありません。

コードのそのセクションは、すべての新しいページにあり、センサーをそのページの kinect 領域にバインドします。

これがなぜなのか、またはどうすればこれを修正できるのかについてのアイデアはありますか?

PS: 違いがある場合は、チュートリアルのように KinectSensorChooser を使用しています。

4

1 に答える 1

0

バインディングの問題を解決する方法をついに見つけました。

ページから移動するときにバインドをクリアしました。

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

誰かがこのメモリの問題に遭遇した場合は、このページにアクセスして、WPF が実際にページ遷移をどのように処理するかを確認してください。これは実際に私の本当の問題でした。

于 2013-07-16T14:24:40.180 に答える