Esta división fue probado por nuestros expertos para garantizar la exactitud de nuestra esta sección.
Hay algunas propiedades de los controles que no puede manipular a través de Xamarin.Forms, tendrá que implementar un efecto o un representador personalizado. Un efecto bien podría funcionar en su caso, pero dado que soy más hábil con los renderizadores personalizados, le mostraré cómo lograr lo que desea con un renderizador personalizado.
Tendrás que crear una clase derivada de EntryRenderer
que anula OnElementChanged
public class CustomEntryRenderer : EntryRenderer
protected override void OnElementChanged(ElementChangedEventArgs e)
base.OnElementChanged(e);
this.Control.LeftView = new UIView(new CGRect(0, 0, 8, this.Control.Frame.Height));
this.Control.RightView = new UIView(new CGRect(0, 0, 8, this.Control.Frame.Height));
this.Control.LeftViewMode = UITextFieldViewMode.Always;
this.Control.RightViewMode = UITextFieldViewMode.Always;
this.Control.BorderStyle = UITextBorderStyle.None;
this.Element.HeightRequest = 30;
Primero, se agregan algunos rellenos al control (de lo contrario, se ve bastante feo) configurando el LeftView
y el RightView
del control nativo. De todos modos, la parte más interesante es la BorderStyle
al configurar esta propiedad del control nativo, puede eliminar el borde del control.
Lo último que tendrá que hacer es decir Xamarin.Forms para usar ese renderizador. Usa lo siguiente attribute en el alcance global de su archivo (fuera de la declaración del espacio de nombres):
[assembly: ExportRenderer(typeof(Entry), typeof(CustomEntryRenderer))]
Si no desea que se aplique el estilo a todos entradas, tendrá que definir un CustomEntry
clase que se deriva de Entry
en su proyecto Xamarin.Forms cambie la línea presentada arriba a
[assembly: ExportRenderer(typeof(CustomEntry), typeof(CustomEntryRenderer))]
Tenga en cuenta: Esta es la implementación de iOS, pero básicamente es lo mismo para Android.
Si crees que te ha resultado de utilidad nuestro post, sería de mucha ayuda si lo compartieras con más juniors y nos ayudes a dar difusión a nuestra información.