Este post fue aprobado por nuestros expertos para asegurar la veracidad de nuestro post.
Solución:
puede usar un renderizador personalizado que afectará a todas las entradas,
aquí está para android:
[assembly: ExportRenderer(typeof(Entry), typeof(MyEntryRenderer))]
namespace Android.MyRenderers
public class MyEntryRenderer : EntryRenderer
protected override void OnElementChanged(ElementChangedEventArgs e)
base.OnElementChanged(e);
if (Control == null
y iOS:
[assembly: ExportRenderer (typeof(Entry), typeof(MyEntryRenderer))]
namespace iOS.MyRenderers
public class MyEntryRenderer : EntryRenderer
private CALayer _line;
protected override void OnElementChanged(ElementChangedEventArgs e)
base.OnElementChanged (e);
_line = null;
if (Control == null
no estoy seguro acerca de la solución de Windows en este
Tuve el mismo problema y solo cambié el colorAccent
valor en estilos.xml (en Xamarin.Android proyecto) cambiará el color del cursor y el borde inferior de un Entry
campo.
- #BA55D3
Dado que tengo las páginas de contenido con un color de fondo y los cuadros de diálogo con otro, usar Estilos para especificar el color de la barra inferior es una respuesta totalmente incorrecta. Y como el OP solo preguntó por Android, esto es solo Android…
Uso un renderizador personalizado para establecer el color de la barra inferior igual que el color del texto. Tiene que tanto ElementChanged como PropertyChanged.
[assembly: ExportRenderer(typeof(Xamarin.Forms.Entry), typeof(CustomEntryRenderer))]
namespace XamFormsConnect.Droid
public class CustomEntryRenderer : EntryRenderer
protected override void OnElementChanged(ElementChangedEventArgs e)
base.OnElementChanged(e);
if (Control != null && e.NewElement != null)
var entry = (Xamarin.Forms.Entry)e.NewElement;
if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
Control.BackgroundTintList = ColorStateList.ValueOf(entry.TextColor.ToAndroid());
else
Control.Background.SetColorFilter(entry.TextColor.ToAndroid(), PorterDuff.Mode.SrcAtop);
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
base.OnElementPropertyChanged(sender, e);
if (e.PropertyName == "TextColor")
var entry = (Xamarin.Forms.Entry)sender;
if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
Control.BackgroundTintList = ColorStateList.ValueOf(entry.TextColor.ToAndroid());
else
Control.Background.SetColorFilter(entry.TextColor.ToAndroid(), PorterDuff.Mode.SrcAtop);
Al final de la web puedes encontrar las acotaciones de otros sys admins, tú además eres capaz dejar el tuyo si dominas el tema.