2010-04-26 3 views
3

몇 사람이이 문제를 겪고있어서이 문제를 해결하려고 노력하면서 (다소) 우아한 해결책을 게시하고 싶었습니다. 문제는 Silverlight에서 템플릿 페이지를 만들고 ContentControls에 부모 Frame의 NavigationService가없는 경우입니다 (항상 시도하고 사용할 때 null입니다). NavigationService가 Intellisence에 있지만 항상 null 인 유사한 시나리오가 있습니다. 사이트 전체 탐색을 활성화하려면 :Silverlight NavigationService는 항상 Null입니다.

  1. 만들기 새로운 UserControl이의 탐색 프레임 (나는 '의 RootFrame'내라고도 함)이있다 (나는 'NavFrame'내라고도 함).

  2. 이 프레임 안에 원하는 콘텐츠를 설정할 수 있습니다.

  3. 이 UserControl을 App.xaml.cs의 RootVisual (즉, this.RootVisual = new NavFrame();)으로 설정하십시오. 당신은 액션을 만들고 만들려는 컨트롤의 상단에 드래그 할 수 있습니다

    ((NavFrame)App.Current.RootVisual).RootFrame.NavigationService 
        .Navigate(new Uri("Your Uri", UriKind.RelativeOrAbsolute)); 
    
+0

+1 : 방금 App.Xaml.cs 클래스에서 NavigationService를 사용할 수있는 무언가를 찾고있었습니다. 감사. –

답변

0
((Frame)(Application.Current.RootVisual as MainPage).FindName("ContentFrame")) 
    .Navigate(new Uri("Page Name", UriKind.Relative)); 
1

:

  • 당신이 뭔가를 입력 할 수있는 페이지의에서 NavigationService를 사용하려면 탐색은 다음과 같이 진행됩니다.

    이제 드래그하여 대상 파에 연결해야합니다. ge. BTW는 SL4에서 그렇다. SL3에서는 시도하지 않았다. URI는 "/SilverlightApplication1;component/Page1.xaml"또는 프레임의 UriMapping 형식으로 작동합니다.

    관련 문제