2016-07-26 2 views
1

Android의 경우 마스터 세부 정보 페이지의 마스터 페이지가 표시되면 마스터 페이지는 "검은 색 흐림"으로 표시되어 두 페이지를 눈으로 구분하기 쉽습니다 . iOS에서 세부 정보 페이지는 흐리게 표시되지 않으므로보기를 구별하는 것이 어렵습니다. 세부 정보 페이지를 "검은 반투명"인 BoxView 또는 프레임과 오버레이하여 Android와 비슷한 방식으로 페이지를 흐리게 표시 할 수 있습니까? 나는 다양한 색상과 상자보기의 불투명 함을 시도했지만 모두 화면을 완전히 덮어서 볼 수는 없습니다. 어떤 아이디어? 아니면 더 나은 솔루션? 그것은 작동합니다 BoxView에 대한 고객 렌더러 경우에도. 색상 아이디어/설정 만 있으면 볼 수 있습니다. 여기Xamarin Dim Page (Master Detail Page)

+0

왜 그냥 마스터 페이지의 배경색을 변경하지 않습니까? – BraveHeart

+0

그게 내 애플 리케이션의 색상 테마에 대한 영향이 아니에요. – theDoke

답변

1

샘플 :

MasterDetailPage mdPage; 
Color origContentBgColor; 
Color origPageBgColor; 

public App() 
    { 
     mdPage = new MasterDetailPage(); 
     mdPage.IsPresentedChanged += async (object sender, EventArgs e) => { 
      if (Device.OS == TargetPlatform.iOS) { 
       if (mdPage.IsPresented) { 
        var currentPage = (DetailPage)((NavigationPage)mdPage.Detail).CurrentPage; 
        origPageBgColor = currentPage.BackgroundColor; 
        origContentBgColor = currentPage.Content.BackgroundColor; 

        currentPage.BackgroundColor = Color.Black; 
        currentPage.Content.FadeTo(0.5); 
        if (currentPage.Content.BackgroundColor == Color.Default) { 
         currentPage.Content.BackgroundColor = Color.White; 

        } 
       } 
       else { 
        var currentPage = (DetailPage)((NavigationPage)mdPage.Detail).CurrentPage; 
        currentPage.BackgroundColor = origPageBgColor; 
        currentPage.Content.BackgroundColor = origContentBgColor; 
        currentPage.Content.FadeTo(1.0); 
       } 


      } 
     }; 
     mdPage.Master = new MasterPage(){Title = "Master Page"}; 
     mdPage.Detail = new NavigationPage(new DetailPage()); 

     // The root page of your application 
     MainPage = mdPage; 
    } 
+0

고마워, 그게 효과가있어,하지만 유일한 캐치 내가 어둠이 검게되면 다음 원하는 색상으로 사라져요 그리고 그것은 일종의 일종의 깜박임처럼 보인다. 색상 및 페이드 전환이 필요하지 않은 오버레이보기를 신속하게 표시/숨길 수있는 방법을 알고 계십니까? – theDoke

+0

흠, 나는 내 말을 깜박 거리지 않았다. 하지만 mdPage.IsPresentedChanged 이벤트 핸들러를 사용하여 원하는대로 작업 할 수 있습니다. 즉, 세부 정보 페이지에 오버레이를 추가 할 수 있지만, 오버레이를 추가하는 IIRC는 어떤 이유로 문제가있었습니다. – jgoldberger

+0

감사! 나는이 코드를 사용하여 불투명도를 희미 해지기 시작했다. – theDoke

관련 문제