Sdílet prostřednictvím


Položka

Uživatelské rozhraní aplikace .NET pro více platforem (.NET MAUI) Entry umožňuje zadat a upravit jeden řádek textu. Kromě toho Entry se dá použít jako pole s heslem.

Entry definuje následující vlastnosti:

  • ClearButtonVisibility, typu ClearButtonVisibility, určuje, zda je zobrazeno jasné tlačítko, což uživateli umožňuje vymazat text. Výchozí hodnota této vlastnosti zajišťuje, že se nezobrazuje jasné tlačítko.
  • HorizontalTextAlignment, typu TextAlignment, definuje vodorovné zarovnání textu.
  • IsPassword, typu bool, určuje, zda má položka vizuálně zakrýt zadaný text.
  • ReturnCommand, typu ICommand, definuje příkaz, který se má spustit při stisknutí návratové klávesy.
  • ReturnCommandParameter, typu object, určuje parametr pro ReturnCommand.
  • ReturnType, typu ReturnType, určuje vzhled návratového tlačítka.
  • 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, Entry která se vyvolá, když uživatel dokončí text v návratovém Entry klíči.

Entry 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ě textuEntry.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 Entrynaleznete v tématu Písma.

Vytvoření položky

Následující příklad ukazuje, jak vytvořit Entry:

<Entry x:Name="entry"
       Placeholder="Enter text"
       TextChanged="OnEntryTextChanged"
       Completed="OnEntryCompleted" />

Ekvivalentní kód jazyka C# je:

Entry entry = new Entry { Placeholder = "Enter text" };
entry.TextChanged += OnEntryTextChanged;
entry.Completed += OnEntryCompleted;

Následující snímek obrazovky ukazuje výsledek Entry v Androidu:

Snímek obrazovky se základní položkou 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 Entry změnách změní, a TextChangedEventArgs před a za změnou zadejte text prostřednictvím OldTextValue a NewTextValue vlastností:

void OnEntryTextChanged(object sender, TextChangedEventArgs e)
{
    string oldText = e.OldTextValue;
    string newText = e.NewTextValue;
    string myText = entry.Text;
}

Událost Completed se vyvolá, když uživatel ukončil vstup stisknutím klávesy Return na klávesnici nebo stisknutím klávesy Tab ve Windows. Obslužná rutina události je obecná obslužná rutina události:

void OnEntryCompleted(object sender, EventArgs e)
{
   string text = ((Entry)sender).Text;
}

Jakmile se Completed událost aktivuje, provede se všechny ICommand zadané ReturnCommand vlastností se object zadaným ReturnCommandParameter vlastností do objektu ReturnCommand.

Poznámka:

Třída VisualElement , která je v Entry hierarchii dědičnosti, má Focused také a Unfocused události.

Nastavení mezer mezi znaky

Mezery mezi znaky lze použít u Entry vlastnosti nastavením CharacterSpacing vlastnosti na double hodnotu:

<Entry ...
       CharacterSpacing="10" />

Výsledkem je, že znaky v textu zobrazeném řádkem Entry 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 Entryobjekt . Tato vlastnost by měla být nastavena na kladné celé číslo:

<Entry ...
       MaxLength="10" />

MaxLength Hodnota vlastnosti 0 označuje, že nebude povolen žádný vstup, a hodnota int.MaxValue, která je výchozí hodnotou pro znak Entry, označuje, že neexistuje žádný efektivní limit počtu znaků, které mohou být zadány.

Nastavení umístění kurzoru a délky výběru textu

Vlastnost CursorPosition lze použít k vrácení nebo nastavení pozice, ve které bude další znak vložen do řetězce uloženého ve Text vlastnosti:

<Entry Text="Cursor position set"
       CursorPosition="5" />

Výchozí hodnota CursorPosition vlastnosti je 0, což označuje, že text bude vložen na začátek objektu Entry.

Kromě toho SelectionLength lze vlastnost použít k vrácení nebo nastavení délky výběru textu v rámci Entry:

<Entry Text="Cursor position and selection length set"
       CursorPosition="2"
       SelectionLength="10" />

Výchozí hodnota SelectionLength vlastnosti je 0, což označuje, že není vybrán žádný text.

Zobrazení nezaškrtáného tlačítka

Vlastnost ClearButtonVisibility lze použít k řízení, zda Entry se zobrazí jasné tlačítko, které uživateli umožní vymazat text. Tato vlastnost by měla být nastavena na člen výčtu ClearButtonVisibility :

  • Never značí, že se nikdy nezobrazí jasné tlačítko. Toto je výchozí hodnota vlastnosti ClearButtonVisibility .
  • WhileEditing indikuje, že se v okně s fokusem Entrya textem zobrazí jasné tlačítko.

Následující příklad ukazuje nastavení vlastnosti:

<Entry Text=".NET MAUI"
       ClearButtonVisibility="WhileEditing" />

Následující snímek obrazovky ukazuje na Androidu Entry s povoleným tlačítkem Vymazat:

Snímek obrazovky se základní položkou s jasným tlačítkem v Androidu

Transformace textu

Velikost Entry 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:

<Entry Text="This text will be displayed in uppercase."
       TextTransform="Uppercase" />

Skrytí zadávání textu

EntryIsPassword poskytuje vlastnost, která vizuálně zakrývá zadaný text, když je nastavena natrue:

<Entry IsPassword="true" />

Následující snímek obrazovky ukazuje, jehož Entry vstup je nejasný:

Snímek obrazovky se základní položkou isPassword nastavenou na true

Přizpůsobení klávesnice

Klávesnice s měkkým vstupem, která se zobrazí, když uživatelé komunikují s objektem Entry , lze programově nastavit prostřednictvím Keyboard vlastnosti na jednu z následujících vlastností z Keyboard třídy:

  • 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:

<Entry 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:

<Entry Placeholder="Enter text here">
    <Entry.Keyboard>
        <Keyboard x:FactoryMethod="Create">
            <x:Arguments>
                <KeyboardFlags>Suggestions,CapitalizeCharacter</KeyboardFlags>
            </x:Arguments>
        </Keyboard>
    </Entry.Keyboard>
</Entry>

Ekvivalentní kód jazyka C# je:

Entry entry = new Entry { Placeholder = "Enter text here" };
entry.Keyboard = Keyboard.Create(KeyboardFlags.Suggestions | KeyboardFlags.CapitalizeCharacter);

Přizpůsobení návratového klíče

Vzhled návratové klávesy na klávesnici se zpětným vstupem, která se zobrazí, když Entry má fokus, lze přizpůsobit nastavením ReturnType vlastnosti na hodnotu výčtu ReturnType :

  • Default – označuje, že není vyžadován žádný konkrétní návratový klíč a že se použije výchozí nastavení platformy.
  • Done – označuje návratový klíč Hotovo.
  • Go – označuje návratový klíč Go.
  • Next – označuje návratový klíč Next.
  • Search – označuje návratový klíč "Search".
  • Send – označuje návratový klíč "Send".

Následující příklad XAML ukazuje, jak nastavit návratový klíč:

<Entry ReturnType="Send" />

Poznámka:

Přesný vzhled návratového klíče závisí na platformě. Návratový klíč v iOSu je textové tlačítko. V Androidu a Windows je ale návratový klíč tlačítkem založeným na ikonách.

Při stisknutí klávesy Completed Return se událost aktivuje a provede se všechny ICommand zadané ReturnCommand vlastností. Kromě toho se všechny object zadané ReturnCommandParameter vlastností předají ICommand jako parametr. Další informace o příkazech naleznete v tématu Příkazy.

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 Entry entry, pokud se aktuálně zobrazuje:

if (entry.IsSoftInputShowing())
    await entry.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 mělo by být zakázáno nastavením IsSpellCheckEnabled vlastnosti na false:

<Entry ... 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:

<Entry ... 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 Entry IsReadOnly vlastnosti na true:

<Entry Text="User input won't be accepted."
       IsReadOnly="true" />

Poznámka:

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