2016-06-14 12 views
4

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

答えて

11

私はあなただけCustomRendererでこれを達成することができると思う:

のiOS:それがある場合はAndroidの上で

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

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

、私は、実際に(CustomRenderなく可能it'sだと思う...私はどのように〜申し訳ありませんが)分からない:

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

ター:CustomRendererを使用して

はこのようなものになるだろうあなたはカスタムレンダラを掘り下げている人にとって、これは信じられないほど役に立ちました。 アンドロイドの境界線の色を変更するためにどれだけの処理が必要かと驚いています。 – DisplayName

関連する問題