Te traemos la solución a esta inconveniente, al menos eso creemos. Si continuas con dudas déjanoslo saber en un comentario, que sin tardar
Solución:
Puedes usar Label.TextTransform
con TextTransform.Uppercase
.
XAML
C#
var label = new Label
TextTransform = TextTransform.Uppercase
;
Como sabe, puede hacer esto desde el código subyacente como tal:
string data = "my data";
UILabel myLabel = new UILabel();
myLabel.Text = data.ToUpper();
Entonces, teniendo en cuenta que no desea hacerlo de esta manera, deberá derivar de UILabel y crear el suyo propio, luego simplemente agregue ToUpper() al final de get;set; valores de la propiedad Texto.
using CoreGraphics;
using System;
using UIKit;
namespace MyApp.Controls
partial class Control_UpperLabel : UILabel
public Control_UpperLabel IntPtr handle) : base(handle)
//
public Control_UpperLabel()
//
public override void Draw(CGRect rect)
base.Draw(rect);
public override string Text get => base.Text.ToUpper(); set => base.Text = value.ToUpper();
EDITAR: según los comentarios a continuación, aquí hay una solución alternativa para Xamarin.Forms
Esto utiliza un convertidor de valor como parte de una solución vinculante. También se modificó ligeramente para usar la sugerencia de Clint en los comentarios a continuación. Gracias.
public class StringCaseConverter : IValueConverter
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
switch ((parameter as string).ToUpper()[0])
case 'U':
return ((string)value).ToUpper();
case 'L':
return ((string)value).ToLower();
default:
return ((string)value);
;
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
throw new NotSupportedException();
Se usaría en el XAML como tal:
Text="Binding Text, Converter=StaticResource caseConverter, ConverterParameter=u}"
Aquí puedes ver las reseñas y valoraciones de los usuarios
Si estás de acuerdo, puedes dejar un enunciado acerca de qué te ha impresionado de este escrito.