因此,对于Android,当显示母版详情页面的母版页时,母版页上覆盖着“黑色暗色”视图,因此很容易用眼睛区分两个页面。在iOS中,详细信息页面不会变暗,因此很难区分视图。有没有一种方法可以用BoxView或Frame覆盖“黑色半透明”的详细信息页面,从而以类似于Android的方式使页面变暗。我已经尝试过多种不同的颜色和不透明的盒子视图,但是它们都完全覆盖了屏幕,您无法“透视它们”。有任何想法吗?还是更好的解决方案?即使它是BoxView的客户渲染器也可以使用。我只需要颜色主意/设置即可使它透彻。
此处的示例:https : //github.com/jgold6/XamarinSupportSamples/tree/master/XForms-TestShadingiOSDetailPage
如果链接断开,以下是代码:
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;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句