所以我为我的应用程序的Android部分制作了一个CustomRenderer。这个CustomRenderer位于MyProject.Droid中,它叫做CustomSwitchRenderer,显然是用于我正在使用的交换机。因此,当我尝试测试时,开关不会显示在我的页面中。它只是一个空白的标签页,里面有两个导航按钮。我发现这很奇怪,因为没有错误和警告被抛出。这就是我所拥有的:
页面:
private void Doelen() {
pages.Add (new ContentPage {
Title="Doelen",
BackgroundImage="background.jpg",
Content = new StackLayout {
Padding = 15,
BackgroundColor = Color.White,
Opacity = 0.75,
Children = {
new Label {
Text = subjects [2],
FontSize = 30,
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Start,
TextColor = Color.White
},
new Label {
Text = "Omzet:",
FontSize = 16
},
ckbOmzet,
ckbMarge,
ckbNieuwelant,
new StackLayout { HorizontalOptions = LayoutOptions.Center, Orientation = StackOrientation.Horizontal, Children = { navButtonPrev, navButtonNext } }
}
}
});
}
这就是我定义开关的方式:
private Switch ckbOmzet = new Switch();
private Switch ckbMarge = new Switch();
private Switch ckbNieuwelant = new Switch();
和当然,我的CustomSwitchRenderer类位于MyProject.Droid中:
[assembly:ExportRenderer(typeof(Switch), typeof(CustomSwitchRenderer))]
namespace MyProject.Droid
{
public class CustomSwitchRenderer : SwitchRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Switch> e)
{
base.OnElementChanged(e);
if (Control != null)
{
Control.TextOn = "AAN";
Control.TextOff = "UIT";
Control.SetTextColor(Android.Graphics.Color.Black);
}
this.SetNativeControl(Control);
}
}
}
我看过多个线程,我仍然不知道我在这里做错了什么!有人可以告诉我这里我做错了吗?
编辑:
现在正在渲染控件,但TextOn和TextOff属性不起作用。