c#-将MasterDetailPage的背景设置为透明

当我尝试将母版(MasterDetailPage的)的背景色设置为透明时,它保持白色.

基本上,我希望看到的是,详细信息页面中的颜色是通过母版显示的.

例如(如果上述情况成立,那么此MasterDetailPage的背景色将为红色(是的,我知道我可以将背景色设置为红色,但我希望它是透明的))

c#-将MasterDetailPage的背景设置为透明

解决方法:

看到TabletMasterDetailRenderer的documentation后,我们可以发现在PCL中创建的母版页或详细页将添加到_masterController.View和_detailController.View上.

因此,当我们将其BackgroundColor设置为Transparent时,页面将仍然是白色.我们还应该设置_masterController.View的BackgroundColor.

我们可以在渲染器中找到_masterController并将其设置为:

public override void ViewWillLayoutSubviews()
{
    base.ViewWillLayoutSubviews();

    var master = ViewControllers[0];
    master.View.BackgroundColor = UIColor.Clear;

    //This is Detail ViewController
    var detail = ViewController.ChildViewControllers[1];
}

为MasterDetailPage创建一个自定义渲染器,并将此代码放入其中.

上一篇:c#-Xamarin Android应用程序在路径:DexPathList [[zip…]…]上找不到类…


下一篇:c#-Xamarin.Forms在运行时加载XAML视图