Sdílet prostřednictvím


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, typu EditorAutoSizeOption, 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, typu double, nastaví mezery mezi znaky v zadaném textu.
  • CursorPosition, typu int, definuje pozici kurzoru v editoru.
  • FontAttributes, typu FontAttributes, určuje styl textu.
  • FontAutoScalingEnabled, typu bool, definuje, zda text bude odrážet předvolby škálování nastavené v operačním systému. Výchozí hodnota této vlastnosti je true.
  • FontFamily, typu string, definuje rodinu písem.
  • FontSize, typu double, definuje velikost písma.
  • IsReadOnly, typu bool, definuje, zda má být uživatel znemožněno upravovat text. Výchozí hodnota této vlastnosti je false.
  • IsSpellCheckEnabled, typu bool, určuje, zda je povolena kontrola pravopisu.
  • IsTextPredictionEnabled, typu bool, určuje, zda je povolena predikce textu a automatická oprava textu.
  • Keyboard, typu Keyboard, určuje soft input klávesnice, která se zobrazí při zadávání textu.
  • MaxLength, typu intdefinuje maximální délku vstupu.
  • Placeholder, typu string, definuje text, který se zobrazí, když je ovládací prvek prázdný.
  • PlaceholderColor, typu Color, definuje barvu zástupného textu.
  • SelectionLength, typu int, představuje délku vybraného textu v ovládacím prvku.
  • Text, typu string, definuje text zadaný do ovládacího prvku.
  • TextColor, typu Color, definuje barvu zadaného textu.
  • TextTransform, typu TextTransform, 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:

Snímek obrazovky se základním editorem 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.DisconnectMicrosoft.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 TextChangedCompleted 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.

Poznámka:

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í hodnota TextTransform 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 Editoreditor, 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 falsea 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 falsehodnotu 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 EditorIsReadOnly vlastnosti, která má výchozí hodnotu false, na true:

<Editor Text="This is a read-only Editor"
        IsReadOnly="true" />

Poznámka:

Vlastnost IsReadonly nemění vzhled vizuálu objektu Editor, na rozdíl od IsEnabled vlastnosti, která také změní vzhled vizuálu na šedou Editor .