如何在android和ios中更改开关的颜色?

时间:2019-06-24 10:43:53

标签: c# android ios xamarin.forms

我需要能够同时在android的{​​{1}}和ios上更改开关的颜色,因为一个是绿色,另一个是黑色,但是应用程序的主要颜色是黄色的xamarin.forms,我该怎么办?

1 个答案:

答案 0 :(得分:0)

您可以创建自定义渲染器:

在您的表单解决方案中:

public class CustomSwitch : Switch
{
}

然后,在您的iOS解决方案中:

[assembly: ExportRenderer(typeof(CustomSwitch), typeof(CustomSwitchRenderer))]

namespace yourNameSpace
{
    public class CustomSwitchRenderer : SwitchRenderer
    {
        protected override void OnElementChanged (ElementChangedEventArgs<Switch> e)
        {
            base.OnElementChanged (e);

            if (Control != null) 
            {
                 //change color
                Control.OnTintColor = UIColor.FromRGB (204, 153, 255);
            }
         }
    }
}

但是,如果要更改应用程序中的所有开关,则只需:

public override bool FinishedLaunching (UIApplication app, NSDictionary options)
{
    // switch
    UISwitch.Appearance.OnTintColor = UIColor.FromRGB(0,0,0);


    return base.FinishedLaunching (app, options);
}