Editor
Uživatelské rozhraní multiplatformních aplikací .NET (.NET MAUI) Editor umožňuje zadat a upravit více řádků textu.
Editor definuje následující vlastnosti:
AutoSize
, typuEditorAutoSizeOption
, definuje, zda editor změní velikost tak, aby vyhovoval uživatelský vstup. Ve výchozím nastavení editor nespadá automaticky.HorizontalTextAlignment
, typu TextAlignment, definuje vodorovné zarovnání textu.VerticalTextAlignment
, typu TextAlignment, definuje svislé zarovnání textu.
Tyto vlastnosti jsou podporovány BindableProperty objekty, což znamená, že mohou být cíle datových vazeb a stylovány.
Kromě toho definuje Completed
událost, Editor která se vyvolá, když uživatel dokončí text v návratovém Editor klíči.
Editor je odvozena z InputView třídy, ze které dědí následující vlastnosti:
CharacterSpacing
, typudouble
, nastaví mezery mezi znaky v zadaném textu.CursorPosition
, typuint
, definuje pozici kurzoru v editoru.FontAttributes
, typuFontAttributes
, určuje styl textu.FontAutoScalingEnabled
, typubool
, definuje, zda text bude odrážet předvolby škálování nastavené v operačním systému. Výchozí hodnota této vlastnosti jetrue
.FontFamily
, typustring
, definuje rodinu písem.FontSize
, typudouble
, definuje velikost písma.IsReadOnly
, typubool
, definuje, zda má být uživatel znemožněno upravovat text. Výchozí hodnota této vlastnosti jefalse
.IsSpellCheckEnabled
, typubool
, určuje, zda je povolena kontrola pravopisu.IsTextPredictionEnabled
, typubool
, určuje, zda je povolena predikce textu a automatická oprava textu.Keyboard
, typuKeyboard
, určuje soft input klávesnice, která se zobrazí při zadávání textu.MaxLength
, typuint
definuje maximální délku vstupu.Placeholder
, typustring
, definuje text, který se zobrazí, když je ovládací prvek prázdný.PlaceholderColor
, typu Color, definuje barvu zástupného textu.SelectionLength
, typuint
, představuje délku vybraného textu v ovládacím prvku.Text
, typustring
, definuje text zadaný do ovládacího prvku.TextColor
, typu Color, definuje barvu zadaného textu.TextTransform
, typuTextTransform
, určuje velikost písmen zadaného textu.
Tyto vlastnosti jsou podporovány BindableProperty objekty, což znamená, že mohou být cíle datových vazeb a stylovány.
Kromě toho definuje událost, InputView která se vyvolá při změně textuEditor.TextChanged
Objekt TextChangedEventArgs
, který doprovází TextChanged
událost, má NewTextValue
a OldTextValue
vlastnosti, které určují nový a starý text v uvedeném pořadí.
Informace o zadávání písem v souboru Editornaleznete v tématu Písma.
Vytvoření editoru
Následující příklad ukazuje, jak vytvořit Editor:
<Editor x:Name="editor"
Placeholder="Enter your response here"
HeightRequest="250"
TextChanged="OnEditorTextChanged"
Completed="OnEditorCompleted" />
Ekvivalentní kód jazyka C# je:
Editor editor = new Editor { Placeholder = "Enter text", HeightRequest = 250 };
editor.TextChanged += OnEditorTextChanged;
editor.Completed += OnEditorCompleted;
Následující snímek obrazovky ukazuje výsledek Editor v Androidu:
Poznámka:
V iOSu může klávesnice pro soft input pokrýt textové vstupní pole, když je pole v dolní části obrazovky, což znesnadňuje zadávání textu. V aplikaci .NET MAUI pro iOS se ale stránky automaticky posunou, když klávesnice pro měkký vstup pokryje pole pro zadávání textu, aby toto pole bylo nad soft input klávesnice. Metodu KeyboardAutoManagerScroll.Disconnect
Microsoft.Maui.Platform
v oboru názvů lze volat, aby se zakázalo toto výchozí chování. Metodu KeyboardAutoManagerScroll.Connect
lze volat, aby se po zakázání znovu povolilo chování.
Zadaný text je přístupný čtením Text
vlastnosti a signálem TextChanged
Completed
událostí, že se text změnil nebo dokončil.
Událost TextChanged
se vyvolá, když se text ve Editor změnách změní, a TextChangedEventArgs
před a za změnou zadejte text prostřednictvím OldTextValue
a NewTextValue
vlastností:
void OnEditorTextChanged(object sender, TextChangedEventArgs e)
{
string oldText = e.OldTextValue;
string newText = e.NewTextValue;
string myText = editor.Text;
}
Událost Completed
se vyvolá pouze ve Windows, když uživatel ukončil vstup stisknutím klávesy Tab na klávesnici nebo fokusem jiného ovládacího prvku. Obslužná rutina události je obecná obslužná rutina události:
void OnEditorCompleted(object sender, EventArgs e)
{
string text = ((Editor)sender).Text;
}
Nastavení mezer mezi znaky
Mezery mezi znaky lze použít u Editor vlastnosti nastavením CharacterSpacing
vlastnosti na double
hodnotu:
<Editor ...
CharacterSpacing="10" />
Výsledkem je, že znaky v textu zobrazeném řádkem Editor jsou CharacterSpacing
oddělené jednotky nezávislé na zařízení.
Poznámka:
Hodnota CharacterSpacing
vlastnosti se použije na text zobrazený vlastnostmi Text
a Placeholder
vlastnostmi.
Omezení délky vstupu
Vlastnost MaxLength
lze použít k omezení vstupní délky, která je povolena pro Editorobjekt . Tato vlastnost by měla být nastavena na kladné celé číslo:
<Editor ... MaxLength="10" />
MaxLength
Hodnota vlastnosti 0 označuje, že nebude povolen žádný vstup, a hodnota int.MaxValue
, která je výchozí hodnotou pro znak Editor, označuje, že neexistuje žádný efektivní limit počtu znaků, které mohou být zadány.
Automatická velikost editoru
Lze Editor vytvořit automatické velikosti obsahu nastavením Editor.AutoSize
vlastnosti na TextChanges
, což je hodnota výčtu EditorAutoSizeOption
. Tento výčet má dvě hodnoty:
Disabled
označuje, že automatická změna velikosti je zakázaná a je výchozí hodnotou.TextChanges
označuje, že je povolená automatická změna velikosti.
Toho lze dosáhnout následujícím způsobem:
<Editor Text="Enter text here"
AutoSize="TextChanges" />
Pokud je povolená automatická změna velikosti, výška se zvýší, když ho Editor uživatel vyplní textem, a výška se sníží, když uživatel odstraní text. To lze použít k zajištění, aby Editor objekty ve DataTemplate CollectionView velikosti správně.
Důležité
Pokud Editor byla vlastnost nastavená, HeightRequest automaticky se velikost nezvětšuje.
Transformace textu
Velikost Editor písmen textu uloženého Text
ve vlastnosti může transformovat nastavením TextTransform
vlastnosti na hodnotu výčtu TextTransform
. Tento výčet má čtyři hodnoty:
None
označuje, že text nebude transformován.Default
označuje, že se použije výchozí chování platformy. Toto je výchozí hodnotaTextTransform
vlastnosti.Lowercase
označuje, že text bude transformován na malá písmena.Uppercase
označuje, že text bude transformován na velká písmena.
Následující příklad ukazuje transformaci textu na velká písmena:
<Editor Text="This text will be displayed in uppercase."
TextTransform="Uppercase" />
Přizpůsobení klávesnice
Klávesnice, která se zobrazí, když uživatelé komunikují s objektem Editor , lze programově nastavit prostřednictvím Keyboard
vlastnosti na jednu z následujících vlastností třídy Keyboard
:
Chat
– používá se pro textování a místa, kde jsou emoji užitečné.Default
– výchozí klávesnice.Email
– používá se při zadávání e-mailových adres.Numeric
– používá se při zadávání čísel.Plain
– používá se při zadávání textu bez zadáníKeyboardFlags
.Telephone
– používá se při zadávání telefonních čísel.Text
– používá se při zadávání textu.Url
– používá se pro zadávání cest k souborům a webovým adresám.
Následující příklad ukazuje nastavení Keyboard
vlastnosti:
<Editor Keyboard="Chat" />
Třída Keyboard
má také metodu Create
továrny, kterou lze použít k přizpůsobení klávesnice zadáním velkých písmen, kontroly pravopisu a chování návrhu. KeyboardFlags
Hodnoty výčtu se zadají jako argumenty metody s vráceným přizpůsobeným Keyboard
kódem. Výčet KeyboardFlags
obsahuje následující hodnoty:
None
– na klávesnici nejsou přidány žádné funkce.CapitalizeSentence
– označuje, že první písmeno prvního slova každé zadané věty bude automaticky velkými písmeny.Spellcheck
– označuje, že kontrola pravopisu se provede u zadaného textu.Suggestions
– označuje, že dokončování slov bude nabízeno na zadaném textu.CapitalizeWord
– označuje, že první písmeno každého slova bude automaticky velkými písmeny.CapitalizeCharacter
– označuje, že každý znak bude automaticky velkými písmeny.CapitalizeNone
– značí, že nedojde k automatickému psaní velkých písmen.All
– označuje, že kontrola pravopisu, dokončování slov a velká písmena věty budou na zadaném textu.
Následující příklad kódu XAML ukazuje, jak přizpůsobit výchozí nastavení Keyboard
pro dokončování slov a velká písmena každého zadaného znaku:
<Editor>
<Editor.Keyboard>
<Keyboard x:FactoryMethod="Create">
<x:Arguments>
<KeyboardFlags>Suggestions,CapitalizeCharacter</KeyboardFlags>
</x:Arguments>
</Keyboard>
</Editor.Keyboard>
</Editor>
Ekvivalentní kód jazyka C# je:
Editor editor = new Editor();
editor.Keyboard = Keyboard.Create(KeyboardFlags.Suggestions | KeyboardFlags.CapitalizeCharacter);
Skrytí a zobrazení klávesnice pro měkký vstup
Třída SoftInputExtensions
v Microsoft.Maui
oboru názvů poskytuje řadu rozšiřujících metod, které podporují interakci s klávesnicí pro měkký vstup na ovládacích prvcích podporujících textové zadání. Třída definuje následující metody:
IsSoftInputShowing
, která kontroluje, jestli se v zařízení aktuálně zobrazuje klávesnice s měkkým vstupem.HideSoftInputAsync
, který se pokusí skrýt klávesnici s měkkým vstupem, pokud se právě zobrazuje.ShowSoftInputAsync
, která se pokusí zobrazit klávesnici s měkkým vstupem, pokud je aktuálně skrytá.
Následující příklad ukazuje, jak skrýt klávesnici pro měkký vstup na pojmenovaném Editor editor
, pokud se aktuálně zobrazuje:
if (editor.IsSoftInputShowing())
await editor.HideSoftInputAsync(System.Threading.CancellationToken.None);
Povolení a zakázání kontroly pravopisu
Vlastnost IsSpellCheckEnabled
určuje, jestli je povolená kontrola pravopisu. Ve výchozím nastavení je vlastnost nastavena na true
. Když uživatel zadá text, označí se chybně napsané texty.
U některých scénářů zadávání textu, jako je zadání uživatelského jména, ale kontrola pravopisu poskytuje negativní prostředí, a proto by měla být zakázána nastavením IsSpellCheckEnabled
vlastnosti na false
:
<Editor ... IsSpellCheckEnabled="false" />
Poznámka:
IsSpellCheckEnabled
Pokud je vlastnost nastavena na false
a vlastní klávesnice se nepoužívá, nativní kontrola pravopisu bude zakázána. Pokud Keyboard
je však nastavena sada, která zakáže kontrolu pravopisu, například Keyboard.Chat
, IsSpellCheckEnabled
vlastnost je ignorována. Vlastnost proto nelze použít k povolení kontroly pravopisu Keyboard
, která ji explicitně zakáže.
Povolení a zakázání predikce textu
Vlastnost IsTextPredictionEnabled
určuje, zda je povolena predikce textu a automatická oprava textu. Ve výchozím nastavení je vlastnost nastavena na true
. Když uživatel zadá text, zobrazí se predikce slov.
U některých scénářů zadávání textu, jako je například zadání uživatelského jména, předpovědi textu a automatické opravy textu, ale může být negativní a mělo by být zakázáno nastavením IsTextPredictionEnabled
vlastnosti na false
:
<Editor ... IsTextPredictionEnabled="false" />
Poznámka:
Pokud je vlastnost nastavená IsTextPredictionEnabled
na false
hodnotu a nepoužívá se vlastní klávesnice, je zakázána predikce textu a automatická oprava textu. Pokud Keyboard
je však nastavena sada, která zakáže predikci textu, IsTextPredictionEnabled
vlastnost bude ignorována. Vlastnost proto nelze použít k povolení predikce textu pro Keyboard
objekt, který ji explicitně zakáže.
Zabránění zadávání textu
Uživatelům lze zabránit v úpravě textu nastavením Editor IsReadOnly
vlastnosti, která má výchozí hodnotu false
, na true
:
<Editor Text="This is a read-only Editor"
IsReadOnly="true" />