如何在 Xamarin.Forms 中更改条目的边框颜色
How to change Border Color of Entry in Xamarin.Forms
我正在 Xamarin.forms 跨平台编写应用程序。
该应用程序中的条目很少,我想 create/change 边框颜色为红色。
有什么简单的方法可以做到这一点?或者有什么办法吗?
我认为您只能使用 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;
}
}
}
我正在 Xamarin.forms 跨平台编写应用程序。 该应用程序中的条目很少,我想 create/change 边框颜色为红色。 有什么简单的方法可以做到这一点?或者有什么办法吗?
我认为您只能使用 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;
}
}
}