2013-12-11 3 views
0

저는 몇 페이지가있는 NavigationWindow입니다. 나는 버튼으로 하나에서 다른 것으로 이동하고 탐색 창 기능으로 돌아 간다. 내 문제는 내가 페이지를로드 할 때 일부 페이지에서 설명자를 사용하는 것이고 navigationwindow에서 돌아 가기 기능을 사용할 때 처형하고 싶습니다 (사실 "설명자"는 Kinect이고 페이지가로드되면 시작됩니다. sensor.start()를 사용하여 Kinect를 끝내고 센서를 멈추고 싶습니다. sensor.stop() ...하지만이 문제에 대한 파일 설명자와 같고 훨씬 많은 사람들이 파일 설명자를 사용했습니다.).NavigationWindow의 GoBack 기능을 확장하십시오.

설명자를 처리하기 위해 GoBack 함수를 확장하는 방법이 있습니까 (코드에서 sensor.stop();) 만 호출하면됩니까?)? 사전

에서

덕분에

+0

, 나의 접근 방식은 다음과 같습니다 페이지의 OnNavigatedTo 이벤트 기술자 폐기 처리. – har07

+0

감사합니다. OnNavigated를 시도 하겠지만, Page.OnNavigatedFrom에서 비활성 상태가되는 페이지에 설명 자의 참조가 있기 때문에. – Alberto

+0

시도했지만 WPF는 Page.OnNavigatedFrom을 구현하지 않습니다 :( – Alberto

답변

0

좋아, 해결 방법을 찾았습니다. 또한 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(); 
      } 
     } 
    } 
} 
1

주석에서 나의 제안은 윈도우 폰 개발 경험을 기반으로했다 ..하지만 난 navigationwindow 사용하여 WPF에서 해당 솔루션을 적용하는 시도 후, 나는 WP/실버에서 OnNavigatedTo/OnNavigatedFrom처럼 아무것도 발견.

하지만 NaviagtionWindow의 탐색 이벤트를 대신 사용할 수 있습니다. 그 경우 this.CurrentSource을 Page2로 가져올 수 있습니다 (Page2에서 Page1로 돌아가서 해당 페이지에 설명자를 처리하는 경우).

희망 작품입니다.