2015-01-14 1 views
0

나는 내가 이것을 시도했지만코드 저장에서 페이지를 생성하고 Windows Store 앱에서 기본 페이지를 생성 된 페이지로 이동하는 방법은 무엇입니까?

뒤에 코드에서 페이지를 만들 및 Windows 스토어 앱에서 만든 페이지로 메인 페이지를 탐색 할 필요는 검은 페이지를 작동하지 않는 것은 탐색한다

Page p1 = new Page();  
p1.Content = pdfViewer1; 
this.Frame.Navigate(typeof(Page),p1); 

답변

0

당신은해야합니다 올바른 Frame 객체를 사용하고 있는지 확인하십시오. 당신이 제공 한 것부터, "루트"프레임을 사용해야하는 것처럼 보입니다. 메인 윈도우가 앱의 OnLaunched 오버라이드에로드 될 때와 매우 비슷합니다.

다음은 기본 페이지에서 보조 페이지를 시작하는 예입니다.

public sealed partial class MainPage : Page 
{ 
    public MainPage() 
    { 
     this.InitializeComponent(); 
     Loaded += MainPage_Loaded; 
    } 

    void MainPage_Loaded(object sender, RoutedEventArgs e) 
    { 
     Frame rootFrame = Window.Current.Content as Frame; 
     rootFrame.Navigate(typeof(SecondaryPage)); 
    } 
} 

네비게이션으로 전달하는 것은 페이지 객체의 유형이며 인스턴스가 아닙니다. 이동하면 인스턴스가 만들어져 해당 인스턴스로 이동합니다. 새 페이지의 Loaded 핸들러는 코드에 표시된 PDF 뷰어와 같은 추가 내용을 연결할 수 있습니다. 필요한 경우 네비게이션 오버로드 중 하나를 사용하여 보조 페이지에 인수를 전달할 수 있습니다.

1

완전히 코드 숨김으로 만들어진 페이지로 이동하는 것은 매우 까다 롭습니다. 나는 (적어도 복잡한 해킹 없이는) 적어도 가능하다는 것을 확신하지 못한다. 이것은 Visual Studio가 네비게이션을 보장하기 위해 장면 뒤에서 어떤 클래스를 빌드하기 때문에 특히 페이지를 식별하는 데 사용되는 클래스 "XamlTypeInfoProvider" 탐색이 가능합니다.

제게 따르면 코드 숨김으로 만들어진 페이지로 이동하는 가장 쉬운 방법은 "정상적인"빈 페이지를 만든 다음이 빈 페이지에 코드 뒤에 작성된 내용으로 채우는 것입니다.

// create the page content in code: here it is in the variable pdfviewer 
     this.Frame.Navigate(typeof(BlankPage1),pdfViewer); 

하고 "빈 페이지"내

화면에 생성 된 페이지의 콘텐츠를 넣어 OnNavigatedTo 이벤트를 사용

public sealed partial class BlankPage1 : Page 
{ 
    public BlankPage1() 
    { 
     this.InitializeComponent(); 
    } 
    protected override void OnNavigatedTo(NavigationEventArgs e) 
    { 
     (this.Content as Grid).Children.Add(e.Parameter as UIElement); 
     base.OnNavigatedTo(e); 
    } 
} 
관련 문제