Éditeur
L’interface utilisateur de l’Editor de l’application multiplateforme .NET (.NET MAUI) vous permet d’entrer et de modifier plusieurs lignes de texte.
Editor définit les propriétés suivantes :
AutoSize
, de typeEditorAutoSizeOption
, définit si l’éditeur modifiera la taille pour s’adapter à l’entrée utilisateur. Par défaut, l’éditeur ne redimensionne pas automatiquement.HorizontalTextAlignment
, de type TextAlignment, définit l’alignement horizontal du texte.VerticalTextAlignment
, de type TextAlignment, définit l’alignement vertical du texte.
Les propriétés s’appuient sur des objets BindableProperty, ce qui signifie qu’elles peuvent être les cibles de liaisons de données et mises en forme avec un style.
En outre, l’Editor définit un évènement Completed
, qui est déclenché lorsque l’utilisateur finalise le texte dans l’Editor avec la touche de retour.
L’Editor dérive de la classe InputView, depuis laquelle elle hérite des propriétés suivantes :
CharacterSpacing
, de typedouble
, définit l’espacement entre les caractères dans le texte entré.CursorPosition
, de typeint
, définit la position du curseur dans l’éditeur.FontAttributes
, de typeFontAttributes
, détermine le style de texte.FontAutoScalingEnabled
, de typebool
, définit si le texte reflète ou non les préférences de mise à l’échelle définies dans le système d’exploitation. La valeur par défaut de cette propriété esttrue
.FontFamily
, de typestring
, définit la famille de police.FontSize
, de typedouble
, définit la taille de police.IsReadOnly
, de typebool
, définit si l’utilisateur doit être empêché de modifier le texte. La valeur par défaut de cette propriété estfalse
.IsSpellCheckEnabled
, de typebool
, contrôle si la vérification orthographique est activée.IsTextPredictionEnabled
, de typebool
, contrôle si la prédiction de texte et la correction automatique du texte sont activées.Keyboard
, de typeKeyboard
, spécifie le clavier logiciel affiché lors de la saisie de texte.MaxLength
, de typeint
, définit la longueur d’entrée maximale.Placeholder
, de typestring
, définit le texte affiché lorsque le contrôle est vide.PlaceholderColor
, de type Color, définit la couleur du texte de l’espace réservé.SelectionLength
, de typeint
, représente la longueur du texte sélectionné dans le contrôle.Text
, de typestring
, définit le texte entré dans le contrôle.TextColor
, de type Color, définit la couleur du texte entré.TextTransform
, de typeTextTransform
, spécifie la casse du texte entré.
Les propriétés s’appuient sur des objets BindableProperty, ce qui signifie qu’elles peuvent être les cibles de liaisons de données et mises en forme avec un style.
En outre, l’InputView définit un évènement TextChanged
, qui est déclenché lorsque le texte dans l’Editor change. L’objet TextChangedEventArgs
qui accompagne l’évènement TextChanged
a les propriétés NewTextValue
et OldTextValue
, qui spécifient respectivement le nouveau et l’ancien texte.
Pour plus d’informations sur la spécification des polices sur un Editor, consultez Polices.
Créer un éditeur
L’exemple suivant montre comment créer un Editor :
<Editor x:Name="editor"
Placeholder="Enter your response here"
HeightRequest="250"
TextChanged="OnEditorTextChanged"
Completed="OnEditorCompleted" />
Le code C# équivalent est :
Editor editor = new Editor { Placeholder = "Enter text", HeightRequest = 250 };
editor.TextChanged += OnEditorTextChanged;
editor.Completed += OnEditorCompleted;
La capture d’écran suivante montre l’Editor résultant sur Android :
Remarque
Sur iOS, le clavier logiciel peut couvrir un champ d’entrée de texte lorsque celui-ci se trouve près du bas de l’écran, ce qui rend difficile l’entrée de texte. Toutefois, dans une application iOS .NET MAUI, les pages défilent automatiquement lorsque le clavier logiciel couvre un champ d’entrée de texte, de sorte que le champ se trouve au-dessus du clavier logiciel. La méthode KeyboardAutoManagerScroll.Disconnect
, dans l’espace de noms Microsoft.Maui.Platform
, peut être appelée pour désactiver ce comportement par défaut. La méthode KeyboardAutoManagerScroll.Connect
peut être appelée pour réactiver le comportement après sa désactivation.
Le texte entré est accessible en lisant la propriété Text
, et les évènements TextChanged
et Completed
signalent que le texte a changé ou a été terminé.
L’évènement TextChanged
est déclenché lorsque le texte dans l’Editor change, et TextChangedEventArgs
fournit le texte avant et après la modification via les propriétés OldTextValue
et NewTextValue
:
void OnEditorTextChanged(object sender, TextChangedEventArgs e)
{
string oldText = e.OldTextValue;
string newText = e.NewTextValue;
string myText = editor.Text;
}
L’évènement Completed
est uniquement déclenché sur Windows lorsque l’utilisateur a terminé l’entrée en appuyant sur la touche Tab du clavier ou en se concentrant sur un autre contrôle. Le gestionnaire de l’évènement est un gestionnaire d’évènements générique :
void OnEditorCompleted(object sender, EventArgs e)
{
string text = ((Editor)sender).Text;
}
Définir l’espacement des caractères
L’espacement des caractères peut être appliqué à une Editor en définissant la propriété CharacterSpacing
sur une valeur double
:
<Editor ...
CharacterSpacing="10" />
Le résultat est que les caractères du texte affiché par l’Editor sont espacés de CharacterSpacing
unités indépendantes de l’appareil.
Remarque
La valeur de la propriété CharacterSpacing
est appliquée au texte affiché par les propriétés Text
et Placeholder
.
Limiter la longueur d’entrée
La propriété MaxLength
peut être utilisée pour limiter la longueur d’entrée autorisée pour l’Editor. Cette propriété doit être définie sur un entier positif :
<Editor ... MaxLength="10" />
Une valeur de propriété MaxLength
de 0 indique qu’aucune entrée n’est autorisée, et une valeur de int.MaxValue
, qui est la valeur par défaut d’un Editor, indique qu’il n’existe aucune limite effective sur le nombre de caractères pouvant être entrés.
Dimensionnement automatique d’un éditeur
Un Editor peut être paramétré pour dimensionner automatiquement son contenu en définissant la propriété Editor.AutoSize
sur TextChanges
, qui est une valeur de l’énumération EditorAutoSizeOption
. Cette énumération a deux valeurs :
Disabled
indique que le redimensionnement automatique est désactivé et est la valeur par défaut.TextChanges
indique que le redimensionnement automatique est activé.
Cela peut être accompli de la façon suivante :
<Editor Text="Enter text here"
AutoSize="TextChanges" />
Lorsque le redimensionnement automatique est activé, la hauteur de l’élément Editor augmentera lorsque l’utilisateur le remplira avec du texte, et diminuera lorsque l’utilisateur supprime du texte. Cela peut être utilisé pour vous assurer que les objets Editor d’un DataTemplate dans une CollectionView sont correctement dimensionnés.
Important
Un Editor ne se redimensionnera pas automatiquement si la propriété HeightRequest a été définie.
Transformer le texte
Une Editor peut transformer la casse de son texte, stockée dans la propriété Text
, en définissant la propriété TextTransform
sur une valeur de l’énumération TextTransform
. Cette énumération a quatre valeurs :
None
indique que le texte n’est pas transformé.Default
indique que le comportement par défaut de la plateforme est utilisé. C’est la valeur par défaut de la propriétéTextTransform
.Lowercase
indique que le texte est transformé en minuscules.Uppercase
indique que le texte est transformé en majuscules.
L’exemple suivant montre comment transformer du texte en majuscules :
<Editor Text="This text will be displayed in uppercase."
TextTransform="Uppercase" />
Personnaliser le clavier
Le clavier présenté lorsque les utilisateurs interagissent avec un Editor peut être défini de manière programmatique via la propriété Keyboard
, sur l’une des propriétés suivantes de la classe Keyboard
:
Chat
: utilisé pour envoyer des SMS et place les emojis là où ils sont utiles.Default
: le raccourci clavier par défaut.Email
: utilisé lorsque des adresses e-mail sont saisies.Numeric
: utilisé lorsque des nombres sont saisis.Plain
: utilisé lorsque du texte est saisi sans que desKeyboardFlags
ne soient spécifiés.Telephone
: utilisé lorsque des numéros de téléphone sont saisis.Text
: utilisé lorsque du texte est saisi.Url
: utilisé pour entrer des chemins d’accès de fichier et des URL.
L'exemple suivant présente la configuration de la propriété Keyboard
:
<Editor Keyboard="Chat" />
La classe Keyboard
dispose également d’une méthode de fabrique Create
qui peut être utilisée pour personnaliser un clavier en spécifiant le comportement de mise en majuscules, de vérification orthographique et de suggestion. Les valeurs d’énumération KeyboardFlags
sont spécifiées en tant qu’arguments pour la méthode en retournant un Keyboard
personnalisé. L’énumération KeyboardFlags
contient les valeurs suivantes :
None
: aucune fonctionnalité n’est ajoutée au clavier.CapitalizeSentence
: indique que les premières lettres des premiers mots de chaque phrase saisie sont automatiquement mises en majuscules.Spellcheck
: indique que la vérification orthographique sera effectuée sur le texte saisi.Suggestions
: indique que la saisie semi-automatique des mots sera proposée pour le texte saisi.CapitalizeWord
: indique que la première lettre de chaque mot est automatiquement mise en majuscules.CapitalizeCharacter
: indique que tous les caractères sont automatiquement mis en majuscules.CapitalizeNone
: indique qu’aucune lettre n’est mise en majuscules automatiquement.All
: indique que la vérification orthographique, la saisie semi-automatique des mots et la mise en majuscules de la première lettre de la phrase seront appliquées au texte saisi.
L’exemple de code XAML suivant montre comment personnaliser le Keyboard
par défaut afin de proposer des saisies semi-automatiques et de mettre en majuscules chaque caractère saisi :
<Editor>
<Editor.Keyboard>
<Keyboard x:FactoryMethod="Create">
<x:Arguments>
<KeyboardFlags>Suggestions,CapitalizeCharacter</KeyboardFlags>
</x:Arguments>
</Keyboard>
</Editor.Keyboard>
</Editor>
Le code C# équivalent est :
Editor editor = new Editor();
editor.Keyboard = Keyboard.Create(KeyboardFlags.Suggestions | KeyboardFlags.CapitalizeCharacter);
Masquer et afficher le clavier logiciel
La classe SoftInputExtensions
, dans l’espace de noms Microsoft.Maui
, fournit une série de méthodes d’extension qui prennent en charge l’interaction avec le clavier logiciel sur les contrôles qui prennent en charge l’entrée de texte. La classe définit les méthodes suivantes :
IsSoftInputShowing
, qui vérifie si l’appareil affiche actuellement le clavier logiciel.HideSoftInputAsync
, qui tentera de masquer le clavier logiciel s’il est actuellement affiché.ShowSoftInputAsync
, qui tentera d’afficher le clavier d’entrée programmable s’il est actuellement masqué.
L’exemple suivant montre comment masquer le clavier logiciel sur un Editor appelé editor
, s’il est actuellement affiché :
if (editor.IsSoftInputShowing())
await editor.HideSoftInputAsync(System.Threading.CancellationToken.None);
Activer et désactiver la vérification orthographique
La propriété IsSpellCheckEnabled
contrôle si la vérification orthographique est activée. Par défaut, la propriété est définie sur true
. Lorsque l’utilisateur entre du texte, les fautes d’orthographe sont indiquées.
Toutefois, pour certains scénarios d’entrée de texte, comme l’entrée d’un nom d’utilisateur, la vérification orthographique fournit une expérience négative et doit donc être désactivée en définissant la propriété IsSpellCheckEnabled
sur false
:
<Editor ... IsSpellCheckEnabled="false" />
Remarque
Lorsque la propriété IsSpellCheckEnabled
est définie sur false
, et qu’un clavier personnalisé n’est pas utilisé, le vérificateur orthographique natif est désactivé. Toutefois, si un Keyboard
a été défini qui désactive la vérification orthographique, comme Keyboard.Chat
, la propriété IsSpellCheckEnabled
est ignorée. Par conséquent, la propriété ne peut pas être utilisée pour activer la vérification orthographique pour un Keyboard
qui la désactive explicitement.
Activer et désactiver la prédiction de texte
La propriété IsTextPredictionEnabled
contrôle si la prédiction de texte et la correction automatique du texte sont activées. Par défaut, la propriété est définie sur true
. Lorsque l’utilisateur entre du texte, des prédictions de mots sont présentées.
Toutefois, pour certains scénarios d’entrée de texte, tels que l’entrée d’un nom d’utilisateur, la prédiction de texte et la correction automatique du texte, offrent une expérience négative et doivent être désactivés en définissant la propriété IsTextPredictionEnabled
sur false
:
<Editor ... IsTextPredictionEnabled="false" />
Remarque
Lorsque la propriété IsTextPredictionEnabled
est définie sur false
, et qu’un clavier personnalisé n’est pas utilisé, la prédiction de texte et la correction automatique du texte sont désactivées. Toutefois, si un Keyboard
a été défini qui désactive la prédiction de texte, la propriété IsTextPredictionEnabled
est ignorée. Par conséquent, la propriété ne peut pas être utilisée pour activer la prédiction de texte pour un Keyboard
qui la désactive explicitement.
Empêcher l’entrée de texte
Les utilisateurs peuvent être empêchés de modifier le texte dans un Editor en définissant la propriété IsReadOnly
, qui a une valeur par défaut de false
, sur true
:
<Editor Text="This is a read-only Editor"
IsReadOnly="true" />