2016-07-26 15 views
1

マスターの詳細ページのマスターページが表示されている場合、マスターページは「黒い暗い」ビューで覆われているため、2つのページを目で見分けるのは簡単です。 iOSでは、詳細ページが淡色表示されないため、ビューを区別するのが難しくなります。詳細ページにBoxViewまたはFrameを「黒い半透明」でオーバーレイする方法があるので、Androidと同様の方法でページを暗くします。私はボックスビューの色や不透明度を色々試しましたが、それらはすべて画面を完全に覆っていて、見ることはできません。何か案は?またはより良い解決策?それが動作するBoxViewのための顧客のレンダラーであっても。私はそれを見通すために色のアイデアや設定が必要です。ここXamarinのぼかしページ(マスターの詳細ページ)

+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

関連する問題