How to change Border Color of Entry in Xamarin.Forms [duplicate]

强颜欢笑 提交于 2019-11-28 03:53:06

问题


This question already has an answer here:

  • Border Color for Editor in Xamarin.Forms 8 answers

I'm writing an app in Xamarin.forms cross-platform. There are few Entries in The app and I want to create/change border color to red. Is There any easy way to do this? or Does any way exists?


回答1:


I think you can only achieve this with a CustomRenderer:

iOS:

protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
       base.OnElementPropertyChanged(sender, e);

       Control.Layer.BorderColor = UIColor.Red.CGColor;
       Control.Layer.BorderWidth = 1;
}

On Android, I think it's not possible without a CustomRender (Actually, if it is... I don't know how ~ Sorry):

Using the CustomRenderer would be something like this:

    [assembly: ExportRenderer(typeof(Entry), typeof(SuperEntryRenderer))]
    namespace Bla{
    public class SuperEntryRenderer : EntryRenderer
        {
            protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
            {
                base.OnElementChanged(e);
                if (e.OldElement == null)
                {
                    var nativeEditText = (global::Android.Widget.EditText)Control;
                    var shape = new ShapeDrawable(new Android.Graphics.Drawables.Shapes.RectShape());
                    shape.Paint.Color = Xamarin.Forms.Color.Red.ToAndroid();
                    shape.Paint.SetStyle(Paint.Style.Stroke);
                    nativeEditText.Background = shape;
                }
            }
        }


来源:https://stackoverflow.com/questions/37822668/how-to-change-border-color-of-entry-in-xamarin-forms

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!