2011-11-19 4 views
1

나는 특정 페이지 시작 라이브 제목을 사용라이브 제목은 무한 루프로 전환

홈 화면에서

라이브 타일 --launch -> P2 - - 작업 및 고토 후> P1> MainPage

메인 페이지에서 뒤로 버튼을 클릭하면 앱이 종료되지 않고 루프 방식으로 P2로 이동합니다. > P1 (PageTakePic.xaml) - -> P2 -> MainPage

홈 화면에서

라이브 타일 --launch :

 try 
     { 
      ShellTile TileToFind = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("PageTakePic.xaml")); 

      if (TileToFind == null) 
      { 

       StandardTileData NewTileData = new StandardTileData 
       { 

        //BackgroundImage = new Uri("Red.jpg", UriKind.Relative), 
        //--front tile 
        Title = "Take Pic", 
        //Count = 12, 

        BackTitle = "Quick Access", 
        //--40 char 
        BackContent = "Take Pic", 
        //BackBackgroundImage = new Uri("Blue.jpg", UriKind.Relative) 
       }; 

       // Create the Tile and pin it to Start. This will cause a navigation to Start and a deactivation of our application. 
       ShellTile.Create(new Uri("/PageTakePic.xaml", UriKind.Relative), NewTileData); 
      } 
      else 
      { 
       MessageBox.Show("A live title created for this service already."); 
      } 

     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("Try again. Error encountered: " + ex.Message); 
      NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative)); 
     } 

업데이트 : 여기

코드입니다

아래의 방법을 사용하면 MainPage에서 작동하지 않습니다. 당신이 얻을 - 어떤 점에서 다시 탐색 할 때

NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative)); 

를 그 다음이 가능 :

 

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 

    NavigationService.RemoveBackEntry(); 
} 
 
+0

다른 곳이 될 것입니다 문제처럼 보인다 .. 당신이 PageTakePic로 이동하여 MainPage에 어떤 곳이 있습니까? 나는 어딘가에 당신이 탐색 해야하는지 결정하기 위해 사용하는 변수를 설정하고있는 것 같아요. –

답변

1

망고의 라이브 타일의 딥 링크를 고려해 볼 때 자주 발생하는 문제입니다. 당신이해야 할 일은 BackStack 항목을 제거하여 메인 페이지를 때리면 뒤로 버튼을 누르면 앱이 종료됩니다. 여기

도움이 될 수 코드 조각입니다 :

void ClearBackStack() 
    { 
     while (NavigationService.CanGoBack) 
     { 
      NavigationService.RemoveBackEntry(); 
     } 
    } 
+0

귀하의 방법으로 업데이트했습니다. 여전히 루프로 돌아갑니다. – MilkBottle

+0

흠, RootFrame.RemoveBackEntry를 시도해 보거나 다른 것일 수도 있습니다. –

+1

또한 귀하의 질문에 업데이트하면 RemoveBackEntry를 한 번 호출하는 것으로 표시되지만 내가 게시 한 ClearBackStack 함수와 같이 루프에서 호출해야합니다. ClearBackStack 함수를 복사하여 붙여 넣기 만하면 문제가 해결되는지 확인할 수 있습니까? –

0

당신이 당신의 예에서와 같이 홈 페이지로 이동하여 오류를 처리하는 경우 : 아직 루프로 전환 오류가 발생하고 대신 MainPage로 이동하여 라이브 타일이 PageTakePic으로 이동하게 한 다음 뒤로를 누르면 탐색이 실패하고 MainPage로 앞으로 이동합니다. 그런 다음 뒤로 버튼을 누르면 PageTakePic 등으로 돌아갑니다.

+0

예, P2에서 내비게이션 방법을 사용합니다. 내가 MainPage 때, 나는 backkey 버튼을 눌러서 앱을 종료 할 필요가 있지만 그것은 P2로 되돌아 간다. 어떤 생각이 어떻게 해결할 수 있습니까? – MilkBottle

+0

나는 딥 링크 타일을 한 번도 해보지 않았지만, 그렇게하는 표본이 있고 그것이 어떻게 끝났는지를 보여줄 것입니다. Navigate 또는 GoBack 메서드를 호출하는 응용 프로그램의 모든 줄에 중단 점 (F9)을 넣으려고 시도하고 예기치 않게 호출되는 것을 발견 할 것입니다. 그런 다음 스택을 검사하여 이유를 확인할 수 있습니다. –

관련 문제