Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

O .NET MAUI Entry é um controle de entrada de texto, que implementa a interface IEntry.

No iOS, o EntryHandler mapeia o Entry para o controle nativo UITextField.

No Android, o Entry é mapeado para um AppCompatEditText, e no Windows o Entry é mapeado para um TextBox

...

.

Painel

O mapeador de propriedades do Entry, na classe EntryHandler, mapeia as propriedades de controle multiplataforma para a API de visualização nativa. Isso  

Isso garante que, quando uma propriedade for definida em um Entry, a exibição nativa seja atualizada conforme necessário.

Bloco de código
languagec#
themeRDark
titleExemplo
void ModifyEntry()
    {
        Microsoft.Maui.Handlers.EntryHandler.Mapper.AppendToMapping("MyCustomization", (handler, view) =>
        {
#if ANDROID
            handler.PlatformView.SetBackgroundColor(Colors.Transparent.ToPlatform());
#elif IOS
            handler.PlatformView.BorderStyle = UIKit.UITextBorderStyle.None;
#elif WINDOWS
            handler.PlatformView.FontWeight = Microsoft.UI.Text.FontWeights.Thin;
#endif
        });
    }
Painel
titleReutilizando um Controle Customizado do Xamarin.Forms
  • Crie um arquivo correspondente ao controle na pasta de sua plataforma:

Image Modified


  • Altere os namesapces correspondentes e comente ou remova o assembly ExportRenderer:

    Bloco de código
    languagec#
    themeRDark
    titleExemplo
    using Android.Content;
    using Microsoft.Maui.Controls.Compatibility.Platform.Android;
    using Microsoft.Maui.Controls.Platform;
    
    //[assembly: ExportRenderer(typeof(RMSCustomEntry), typeof(RMSCustomEntryRenderer))]
    namespace RMLib.Android.Renderers
    {
        public class RMSCustomEntryRenderer : EntryRenderer
        {
            public RMSCustomEntryRenderer(Context context) : base(context)
            {
            }
    
            protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
            {
                base.OnElementChanged(e);
                Control?.SetBackgroundColor(global::Android.Graphics.Color.Transparent);
            }
        }
    }


  • Inclua o trecho de código a seguir no arquivo MauiProgram.cs (

...

  • linhas 13-19): 

    Bloco de código
    languagec#
    themeRDark
    titleCódigo
    linenumberstrue
    using CommunityToolkit.Maui;
    using Microsoft.Maui.Controls.Compatibility.Hosting;
    using RMLib.Android.Renderers;
    using RMLib.Custom;
    
    namespace MinhaQualidade;
    public static class MauiProgram
    {
        public static MauiApp CreateMauiApp()
        {
            var builder = MauiApp.CreateBuilder();
            builder.UseMauiApp<App>()
            .UseMauiCompatibility()
            .ConfigureMauiHandlers(handlers =>
            {
    #if ANDROID
                handlers.AddCompatibilityRenderer(typeof(RMSCustomEntry), typeof(RMSCustomEntryRenderer));
    #endif
            })
            .ConfigureEffects(effects =>
            {
    
            })
            .ConfigureFonts(fonts =>
            {
                fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
                fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
    
                fonts.AddFont("NunitoSans-Bold.ttf", "NunitoSansBold");
                fonts.AddFont("NunitoSans-ExtraLight.ttf", "NunitoSansExtraLight");
                fonts.AddFont("NunitoSans-Regular.ttf", "NunitoSansRegular");
                fonts.AddFont("Nunito-SemiBold.ttf", "NunitoSemiBold");
            })
            .UseMauiCommunityToolkit();
            return builder.Build();
        }
    }