좋아, 해결 방법을 찾았습니다. 또한 WPF에 개체를 배치하는 방법에 대한 질문에도 적용됩니다. 그것은 GC에 대한 WPF 대화에서 객체를 처리하는 것에 대한 모든 게시물이 이상하며 사용자가 직접 처리 할 수는 없습니다. 예, GC는 객체를 자동으로 처리하지만 원하는 경우에만 처리합니다. 하지만 아마도 처분하기를 원할 수도 있고 처분하기 전에 이전 작업이 필요한 객체가있을 수도 있습니다. 필자의 경우 Kinect를 처리하기 전에 중지해야합니다 (중지하지 않고 처분 할 수 있지만 kinect 센서는 여전히 작동 중입니다). GC는 처리하기 전에 중단해야하기 때문에 해결책이 아닙니다.
그래서,이 솔루션은 :
난 당신이 제대로 후에 무엇인지 이해한다면
public partial class MyClass : Page
{
private KinectSensor sensor;
public MyClass()
{
InitializeComponent();
this.Loaded += (s, e) => { NavigationService.Navigating += NavigationService_Navigating; };
// What you want to add to the constructor
// I want to start Kinect
sensor = KinectSensor.KinectSensors.FirstOrDefault(k => k.Status == KinectStatus.Connected);
sensor.Start();
}
public void NavigationService_Navigating(object sender, NavigatingCancelEventArgs e)
{
if (e.NavigationMode == NavigationMode.Back)
{
// What you want to do.
// I want to stop and dispose Kinect
if (sensor != null)
{
sensor.Stop();
sensor.Dispose();
}
}
}
}
, 나의 접근 방식은 다음과 같습니다 페이지의 OnNavigatedTo 이벤트 기술자 폐기 처리. – har07
감사합니다. OnNavigated를 시도 하겠지만, Page.OnNavigatedFrom에서 비활성 상태가되는 페이지에 설명 자의 참조가 있기 때문에. – Alberto
시도했지만 WPF는 Page.OnNavigatedFrom을 구현하지 않습니다 :( – Alberto