我需要能够为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());
}
}
}
答案 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
};
}