2017-01-15 1 views
0

내가 샘플 마스터를 실행하면 내 UWP 대상이 윈도우 (10)Xamarin.Forms 프리즘 응용 프로그램이 표시되지 마스터 - 세부 탐색 모음

에서 실행 내 Xamarin.Forms 응용 프로그램 구성 마스터 - 세부 정보 탐색을 얻기 위해 노력하고 있어요

시작 :

enter image description here

햄버거 아이콘을 선택 자 마린에 의해 제공 -detail 응용 프로그램은 팝 오버에 MasterBehavior을 (https://developer.xamarin.com/guides/xamarin-forms/user-interface/navigation/master-detail-page/ 다음), 변경, 나는 다음과 같은 동작을 참조하십시오

enter image description here

선택합니다 다음 MasterBehavior로 설정하여

protected override void OnInitialized() 
{ 
    InitializeComponent(); 
    var task = NavigationService.NavigateAsync("MainPage/View1"); 
    ... 
} 

MainPage 내 MasterDetailPage입니다 : 내 프리즘 응용 프로그램에서

enter image description here

을, 나는/뷰 1을 MainPage로 이동 Popover이고 View1은 ContentPage입니다.

MainPage :

<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms" 
        xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
        xmlns:views="clr-namespace:My.Mobile.Application.Views;assembly=My.Mobile.Application" 
        x:Class="My.Mobile.Application.Frame.MainPage" 
        MasterBehavior="Popover"> 
    <MasterDetailPage.Master> 
    <views:MasterPage x:Name="masterPage" /> 
    </MasterDetailPage.Master> 
    <MasterDetailPage.Detail> 
    <NavigationPage> 
     <x:Arguments> 
     <views:View1 /> 
     </x:Arguments> 
    </NavigationPage> 
    </MasterDetailPage.Detail> 
</MasterDetailPage> 

뷰 1 :

:

public View1() 
{ 
    NavigationPage.SetHasNavigationBar(this,false); 
    InitializeComponent(); 
} 

시작에, 나는 어떤 탐색 모음, 뷰 1 (현재는 단지 빨간색 화면)의 내용 만 표시되지 않습니다 enter image description here

MainPage.xaml의 MasterBehavior를 Defa로 변경하면

MainPage :

<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms" 
        xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
        xmlns:views="clr-namespace:My.Mobile.Application.Views;assembly=My.Mobile.Application" 
        x:Class="My.Mobile.Application.Frame.MainPage" 
        MasterBehavior="Default"> 
    <MasterDetailPage.Master> 
    <views:MasterPage x:Name="masterPage" /> 
    </MasterDetailPage.Master> 
    <MasterDetailPage.Detail> 
    <NavigationPage> 
     <x:Arguments> 
     <views:View1 /> 
     </x:Arguments> 
    </NavigationPage> 
    </MasterDetailPage.Detail> 
</MasterDetailPage> 

뷰 1 :

public View1() 
{ 
    //NavigationPage.SetHasNavigationBar(this,false); 
    InitializeComponent(); 
} 

enter image description here

앱을 시작할 때 대신 팝 오버의 ULT 및 뷰 1에서 SetHasNavigationBar를 제거, 나는 사이드 메뉴를 참조 MasterBehavior를 Default로 설정하고 시작한 후 선택을하면 햄버거 메뉴가 나타납니다.

enter image description here

내가 추가 또는 팝업 할 세트 MasterBehavior을 가진 자 마린 샘플 동작을 모방하는 내 솔루션에서 확인할 수 있나요?

답변

3

문제는 여기에 있습니다 : 당신이 햄버거 메뉴를 표시 할 때문에 var task = NavigationService.NavigateAsync("MainPage/View1");

, 당신은 NavigationPage에 세부 사항을 포장해야합니다.그래서 먼저 탐색 경로에 추가

Container.RegisterTypeForNavigation<NavigationPage>();

다음 탐색을위한 NavigationPage 등록 : 당신은 당신의 MasterPage XAML의 세부 마크 업을 제거 할 수

var task = NavigationService.NavigateAsync("MainPage/NavigationPage/View1");

을 또한 네비게이션 서비스 때문에 당신을 위해 그것을 구축 할 것입니다.

0

은 다음과 같이 뭔가를 시도 :

public partial class ShellView : MasterDetailPage, IMasterDetailPageOptions 
{ 
    public ShellView() 
    { 
     InitializeComponent(); 
    } 

    public bool IsPresentedAfterNavigation 
    { 
     get { return Device.Idiom != TargetIdiom.Phone; } 
    } 
} 
관련 문제