web-dev-qa-db-ja.com

Xamarin.Formsでエントリの境界線の色を変更する方法

Xamarin.formsクロスプラットフォームでアプリを書いています。アプリにいくつかのエントリがあり、境界線の色を作成/変更したいです。これを行う簡単な方法はありますか?または何か方法はありますか?

7

これは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;
                }
            }
        }
19
Rodrigo Elias