如何在Xamarin.Forms中更改条目的边框颜色

时间:2016-06-14 21:48:29

标签: xaml xamarin cross-platform xamarin.forms xamarin-studio

我正在Xamarin.forms中编写一个跨平台的应用程序。 应用程序中的条目很少,我想创建/更改边框颜色为红色。 有没有简单的方法来做到这一点?或者有任何方式存在吗?

1 个答案:

答案 0 :(得分:18)

我认为你只能用CustomRenderer实现这个目的:

的iOS:

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

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

在Android上,我认为没有CustomRender是不可能的(事实上,如果是......我不知道如何〜抱歉):

使用CustomRenderer会是这样的:

    [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;
                }
            }
        }