Xamarin.Forms中的透明页面

时间:2017-05-09 06:02:23

标签: c# android xamarin xamarin.android xamarin.forms

我需要能够为Android创建透明的Xamarin.Forms页面。如何才能真正实现页面渲染器?现在它有一个默认的背景颜色。

[assembly: ExportRenderer(typeof(MyPage), typeof(ClearBackgroundPageRenderer))]
namespace MyApp.Droid
{
    public class ClearBackgroundPageRenderer : PageRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
        {
            base.OnElementChanged(e);

            SetBackgroundColor(Color.Transparent.ToAndroid());
        }
    }
}

1 个答案:

答案 0 :(得分:0)

如果您只想让您的网页背景透明,则无需为此创建自定义渲染器。您可以在PCL中设置背景颜色。

例如,xaml:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:NameSpace"
             x:Class="NameSpace.MainPage"
             BackgroundColor="Transparent">

</ContentPage>

或代码背后:

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
        this.BackgroundColor = Color.Transparent;
    }
}

为了证明它是透明的,我们可以使用带有彩色背景的NavigationPage进行App.xaml.cs测试:

public App()
{
    InitializeComponent();

    MainPage = new NavigationPage(new MainPage())
    {
        BackgroundColor = Color.Red
    };
}