Xamarin.Forms Položka
Se Xamarin.FormsEntry používá pro jedno řádky textového vstupu. , Entry stejně jako Editor zobrazení, podporuje více typů klávesnice. Kromě toho Entry se může použít jako pole pro heslo.
Nastavení a čtení textu
, stejně jako ostatní zobrazení s textem, zpřístupňuje Entry Xamarin_Forms Entry _InputView_Text" data-linktype="absolute-path">Text vlastnost. Tuto vlastnost lze použít k nastavení a čtení textu prezentované objektem Entry . Následující příklad ukazuje nastavení vlastnosti Text v jazyce XAML:
<Entry x:Name="entry" Text="I am an Entry" />
V jazyce C#:
var entry = new Entry { Text = "I am an Entry" };
Pokud chcete číst text, přistupte Text k vlastnosti v jazyce C#:
var text = entry.Text;
Nastavení zástupného textu
Hodnotu lze nastavit tak, aby se v případě, že neukládá uživatelský Entry vstup, zobrazovat zástupný text. Toho se dosáhne nastavením vlastnosti Xamarin_Forms _InputView_Placeholder" data-linktype="absolute-path">na Placeholderstring a Entry často se používá k označení typu obsahu, který je vhodný pro . Kromě toho můžete nastavit barvu zástupného textu nastavením vlastnosti Xamarin_Forms _InputView_PlaceholderColor" data-linktype="absolute-path">PlaceholderColor na Color :
<Entry Placeholder="Username" PlaceholderColor="Olive" />
var entry = new Entry { Placeholder = "Username", PlaceholderColor = Color.Olive };
Poznámka
Šířku objektu Entry lze definovat nastavením jeho WidthRequest vlastnosti. Nezávisí na šířce Entry definovaného objektu na základě hodnoty jeho Text vlastnosti.
Zabránění zadávání textu
Uživatelům je možné zabránit v úpravách textu v objektu nastavením vlastnosti , která má výchozí hodnotu EntryIsReadOnly , na falsetrue :
<Entry Text="This is a read-only Entry"
IsReadOnly="true" />
var entry = new Entry { Text = "This is a read-only Entry", IsReadOnly = true });
Poznámka
Vlastnost nemění vzhled objektu , na rozdíl od vlastnosti , která také změní vzhled objektu IsReadonlyEntry na IsEnabledEntry šedou.
Transformace textu
Objekt může transformovat velikost kaskádového textu uloženého ve vlastnosti nastavením vlastnosti EntryText na hodnotu TextTransformTextTransform výčtu. Tento výčet má čtyři hodnoty:
Noneoznačuje, že text nebude transformován.Defaultoznačuje, že se použije výchozí chování platformy. Toto je výchozí hodnotaTextTransformvlastnosti .Lowercaseoznačuje, že text bude transformován na malá písmena.Uppercaseoznač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" />
Ekvivalentní kód jazyka C# je:
Entry entry = new Entry
{
Text = "This text will be displayed in uppercase.",
TextTransform = TextTransform.Uppercase
};
Omezení délky vstupu
Vlastnost Xamarin_Forms _InputView_MaxLength" data-linktype="absolute-path">lze použít k omezení délky vstupu povolené MaxLength pro Entry . Tato vlastnost by měla být nastavená na kladné celé číslo:
<Entry ... MaxLength="10" />
var entry = new Entry { ... MaxLength = 10 };
Hodnota vlastnosti Xamarin_Forms _InputView_MaxLength" data-linktype="absolute-path">znamená, že nebude povolen žádný vstup, a hodnota , což je výchozí hodnota pro , značí, že neexistuje žádný efektivní limit počtu znaků, které mohou být MaxLengthint.MaxValueEntry zadány.
Mezery mezi znaky
Mezery mezi znaky lze použít u Entry objektu nastavením vlastnosti na Entry.CharacterSpacingdouble hodnotu:
<Entry ...
CharacterSpacing="10" />
Ekvivalentní kód jazyka C# je:
Entry entry = new Entry { CharacterSpacing = 10 };
Výsledkem je, že znaky v textu zobrazeném v jsou od sebe umístěné jednotky EntryCharacterSpacing nezávislé na zařízení.
Poznámka
Hodnota CharacterSpacing vlastnosti se použije na text zobrazený vlastnostmi a TextPlaceholder .
Pole hesla
Entry poskytuje IsPassword vlastnost . Pokud IsPassword je , obsah pole se zobrazí jako černé true kruhy:
V jazyce XAML:
<Entry IsPassword="true" />
V jazyce C#:
var MyEntry = new Entry { IsPassword = true };

Zástupné symboly je možné používat s instancemi , Entry které jsou nakonfigurované jako pole hesla:
V jazyce XAML:
<Entry IsPassword="true" Placeholder="Password" />
V jazyce C#:
var MyEntry = new Entry { IsPassword = true, Placeholder = "Password" };

Nastavení pozice kurzoru a délky výběru textu
Vlastnost Xamarin_Forms _Entry_CursorPosition" data-linktype="absolute-path">lze použít k vrácení nebo nastavení pozice, na které se vloží další znak do řetězce uloženého v CursorPosition Xamarin_Forms CursorPosition _InputView_Text" data-linktype="absolute-path">Text vlastnost:
<Entry Text="Cursor position set" CursorPosition="5" />
var entry = new Entry { Text = "Cursor position set", CursorPosition = 5 };
Výchozí hodnota vlastnosti Xamarin_Forms _Entry_CursorPosition" data-linktype="absolute-path">je CursorPosition 0, což znamená, že text se vloží na začátek Entry .
Vlastnost Xamarin_Forms _Entry_SelectionLength" data-linktype="absolute-path">lze použít k vrácení nebo nastavení délky výběru textu v objektu SelectionLengthEntry :
<Entry Text="Cursor position and selection length set" CursorPosition="2" SelectionLength="10" />
var entry = new Entry { Text = "Cursor position and selection length set", CursorPosition = 2, SelectionLength = 10 };
Výchozí hodnota vlastnosti Xamarin_Forms _Entry_SelectionLength" data-linktype="absolute-path">je 0, což znamená, že není vybraný žádný SelectionLength text.
Zobrazení tlačítka vymazat
Vlastnost lze použít k řízení, zda se zobrazí tlačítko vymazat, což uživateli umožňuje ClearButtonVisibilityEntry vymazat text. Tato vlastnost by měla být nastavena na ClearButtonVisibility člen výčtu:
Neveroznačuje, že se tlačítko vymazat nikdy nezobrazí. Toto je výchozí hodnota vlastnostiEntry.ClearButtonVisibility.WhileEditingoznačuje, že se v souboru zobrazí tlačítko pro vymazání, zatímco má fokus aEntrytext.
Následující příklad ukazuje nastavení vlastnosti v jazyce XAML:
<Entry Text="Xamarin.Forms"
ClearButtonVisibility="WhileEditing" />
Ekvivalentní kód jazyka C# je:
var entry = new Entry { Text = "Xamarin.Forms", ClearButtonVisibility = ClearButtonVisibility.WhileEditing };
Následující snímky obrazovky ukazují objekt Entry s povoleným tlačítkem Vymazat:

Přizpůsobení klávesnice
Klávesnici, která se zobrazí, když uživatelé pracují s objektem , je možné nastavit programově prostřednictvím Entry Xamarin_Forms Entry _InputView_Keyboard" data-linktype="absolute-path">Keyboard na Keyboard jednu z následujících vlastností z třídy :
- _Keyboard_Chat" data-linktype="absolute-path">– používá se pro textové zprávy a místa, kde
Chatje emoji užitečné. - Xamarin_Forms _Keyboard_Default data-linktype="absolute-path">
Default– výchozí klávesnice. - Xamarin_Forms _Keyboard_Email adresu" data-linktype="absolute-path">– používá se
Emailpři zadávání e-mailových adres. - Xamarin_Forms _Keyboard_Numeric data-linktype="absolute-path">– používá se
Numericpři zadávání čísel. - Xamarin_Forms _Keyboard_Plain" data-linktype="absolute-path">– používá se při zadávání
Plaintextu bezKeyboardFlagszadání. - Xamarin_Forms _Keyboard_Telephone telefonních čísel se používá >data-linktype="absolute-path">.
Telephone - Xamarin_Forms _Keyboard_Text data-linktype="absolute-path">
Text– používá se při zadávání textu. - Xamarin_Forms _Keyboard_Url" data-linktype="absolute-path">– používá se k zadávání webových adres
Urlcest k & souborům.
V jazyce XAML to lze provést takto:
<Entry Keyboard="Chat" />
Ekvivalentní kód jazyka C# je:
var entry = new Entry { Keyboard = Keyboard.Chat };
Příklady jednotlivých klávesnic najdete v našem úložišti Recepty.
Třída Keyboard má také metodu továrny, kterou je možné použít k přizpůsobení klávesnice zadáním velkých a velkých písmen, kontroly pravopisu Create a chování návrhů. KeyboardFlags Hodnoty výčtu jsou zadány jako argumenty metody s vrácenou Keyboard přizpůsobenou hodnotou. Výčet KeyboardFlags obsahuje následující hodnoty:
- Xamarin_Forms _KeyboardFlags_None" data-linktype="absolute-path">– na klávesnici se
Nonenepřidávají žádné funkce. - Xamarin_Forms _KeyboardFlags_CapitalizeSentence" data-linktype="absolute-path">– označuje, že první písmeno prvního slova každé zadané věty bude automaticky velkými
CapitalizeSentencepísmeny. - Xamarin_Forms _KeyboardFlags_Spellcheck" data-linktype="absolute-path">– označuje, že se kontrola pravopisu provede
Spellcheckse zadaným textem. - Xamarin_Forms _KeyboardFlags_Suggestions" data-linktype="absolute-path">– označuje, že zadanému textu se bude nabízeno dokončování
Suggestionsslov. - Xamarin_Forms _KeyboardFlags_CapitalizeWord" data-linktype="absolute-path">– označuje, že první písmeno každého slova bude automaticky velkými
CapitalizeWordpísmeny. - Xamarin_Forms _KeyboardFlags_CapitalizeCharacter" data-linktype="absolutní_cesta">– označuje, že každý znak bude automaticky velkým
CapitalizeCharacterpísmenem. - Xamarin_Forms _KeyboardFlags_CapitalizeNone" data-linktype="absolutní_cesta">– označuje, že nedojde k automatickému
CapitalizeNonepoužití velkých a velkých písmen. - Xamarin_Forms _KeyboardFlags_All" data-linktype="absolute-path">– označuje, že u zadaného textu se bude vyskytovat kontrola pravopisu, dokončování slov a velká písmena
Allvět.
Následující příklad kódu XAML ukazuje, jak přizpůsobit výchozí nastavení pro dokončování slov a velká a Keyboard 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:
var entry = new Entry { Placeholder = "Enter text here" };
entry.Keyboard = Keyboard.Create(KeyboardFlags.Suggestions | KeyboardFlags.CapitalizeCharacter);
Přizpůsobení klávesy Return
Vzhled návratové klávesy na softwarové klávesnici, která se zobrazí, když je fokus, lze přizpůsobit nastavením vlastnosti Entry Xamarin_Forms Entry _Entry_ReturnType" data-linktype="absolutní_cesta">na hodnotu ReturnTypeReturnType výčtu:
- _ReturnType_Default" data-linktype="absolute-path">– značí, že se nevyžaduje žádný konkrétní návratový klíč a že se použije výchozí nastavení
Defaultplatformy. - Xamarin_Forms _ReturnType_Done" data-linktype="absolute-path">– označuje návratovou
Doneklávesu "Hotovo". - Xamarin_Forms _ReturnType_Go" data-linktype="absolute-path">– označuje návratovou
Goklávesu "Go". - Xamarin_Forms _ReturnType_Next" data-linktype="absolute-path">– označuje návratovou
Nextklávesu "Next". - Xamarin_Forms _ReturnType_Search" data-linktype="absolute-path">– označuje návratovou
Searchklávesu "Search". - Xamarin_Forms _ReturnType_Send" data-linktype="absolute-path">– označuje návratový klíč
Send"Send".
Následující příklad XAML ukazuje, jak nastavit návratový klíč:
<Entry ReturnType="Send" />
Ekvivalentní kód jazyka C# je:
var entry = new Entry { ReturnType = ReturnType.Send };
Poznámka
Přesný vzhled návratové klávesy závisí na platformě. V iOSu je návratový klíč textové tlačítko. V androidových a univerzálních Windows platformách je ale návratový klíč tlačítko založené na ikonách.
Při stisknutí návratové klávesy se spustí událost a všechny události určené Xamarin_Forms CompletedICommandCompleted _Entry_ReturnCommand" data-linktype="absolute-path">ReturnCommand vlastnost. Kromě toho všechny zadané object vlastností Xamarin_Forms object _Entry_ReturnCommandParameter" data-linktype="absolute-path">se předá do jako ReturnCommandParameterICommand parametr. Další informace o příkazech najdete v tématu Příkazové rozhraní.
Povolení a zakázání kontroly pravopisu
Vlastnost Xamarin_Forms _InputView_IsSpellCheckEnabled data-linktype="absolute-path">určuje, jestli je IsSpellCheckEnabled povolená kontrola pravopisu. Ve výchozím nastavení je vlastnost nastavená na true . Když uživatel zadá text, jsou označena překlepy.
U některých scénářů zadávání textu, jako je například zadání uživatelského jména, však kontrola pravopisu poskytuje negativní prostředí a měla by se zakázat nastavením vlastnosti Xamarin_Forms _InputView_IsSpellCheckEnabled" data-linktype="absolute-path">IsSpellCheckEnabled na false :
<Entry ... IsSpellCheckEnabled="false" />
var entry = new Entry { ... IsSpellCheckEnabled = false };
Poznámka
Pokud je vlastnost Xamarin_Forms _InputView_IsSpellCheckEnabled" data-linktype="absolute-path">nastavená na a použije se vlastní klávesnice, nativní kontrola pravopisu se IsSpellCheckEnabledfalse deaktivuje. Pokud ale byla nastavena hodnota , která zakazuje kontrolu pravopisu, například Keyboard Xamarin_Forms Keyboard _Keyboard_Chat" data-linktype="absolute-path">, vlastnost se Keyboard.ChatIsSpellCheckEnabled ignoruje. Vlastnost proto nelze použít k povolení kontroly pravopisu pro objekt , Keyboard který ji explicitně zakáže.
Povolení a zakázání predikce textu
Vlastnost Xamarin_Forms _Entry_IsTextPredictionEnabled" data-linktype="absolute-path">určuje, jestli je povolená předpověď textu a automatická IsTextPredictionEnabled oprava textu. Ve výchozím nastavení je vlastnost nastavená na true . Při zadávání textu se predikce slov predikují.
U některých scénářů zadávání textu, jako je zadání uživatelského jména, predikce textu a automatická oprava textu, je ale negativní a měli byste ho zakázat nastavením vlastnosti Xamarin_Forms _Entry_IsTextPredictionEnabled" data-linktype="absolute-path">na IsTextPredictionEnabledfalse :
<Entry ... IsTextPredictionEnabled="false" />
var entry = new Entry { ... IsTextPredictionEnabled = false };
Poznámka
Pokud je vlastnost Xamarin_Forms _Entry_IsTextPredictionEnabled" data-linktype="absolute-path">nastavená na a není použitá vlastní klávesnice, predikce textu a automatická oprava textu se IsTextPredictionEnabledfalse deaktivují. Pokud je ale nastaven objekt , který zakazuje Keyboard predikci textu, IsTextPredictionEnabled vlastnost se ignoruje. Vlastnost proto nelze použít k povolení predikce textu pro objekt , Keyboard který ji explicitně zakáže.
Barvy
Položka může být nastavená tak, aby pomocí následujících vlastností s možností vazby používejte vlastní barvy pozadí a textu:
- TextColor – nastaví barvu textu.
- BackgroundColor – nastaví barvu zobrazenou za textem.
Je potřeba zvláštní pozornost, abyste zajistili, že barvy budou použitelné na každé platformě. Vzhledem k tomu, že každá platforma má jiné výchozí hodnoty pro barvy textu a pozadí, budete často muset nastavit obě, pokud jednu nastavíte.
Pomocí následujícího kódu nastavte barvu textu položky:
V jazyce XAML:
<Entry TextColor="Green" />
V jazyce C#:
var entry = new Entry();
entry.TextColor = Color.Green;

Všimněte si, že zástupný symbol není ovlivněn zadaným symbolem TextColor .
Nastavení barvy pozadí v jazyce XAML:
<Entry BackgroundColor="#2c3e50" />
V jazyce C#:
var entry = new Entry();
entry.BackgroundColor = Color.FromHex("#2c3e50");

Dávejte pozor, abyste měli jistotu, že barvy pozadí a textu, které zvolíte, jsou použitelné na každé platformě a nezakrývá žádný zástupný text.
Události a interaktivita
Položka zpřístupňuje dvě události:
TextChanged– vyvolána při změně textu v položce. Poskytuje text před změnou a po změně.Completed– vyvoláno, když uživatel ukončil vstup stisknutím klávesy Return na klávesnici.
Poznámka
Třída VisualElement , ze které Entry dědí , má také události a FocusedUnfocused .
Dokončeno
Událost Completed se používá k reakci na dokončení interakce s objektem Entry. Completed je vyvolána, když uživatel ukončí vstup polem stisknutím klávesy Return na klávesnici (nebo stisknutím klávesy Tab na UPW). Obslužná rutina události je obecná obslužná rutina události, která vezme odesílatele a EventArgs :
void Entry_Completed (object sender, EventArgs e)
{
var text = ((Entry)sender).Text; //cast sender to access the properties of the Entry
}
Dokončenou událost je možné přihlásit k odběru v jazyce XAML:
<Entry Completed="Entry_Completed" />
a C#:
var entry = new Entry ();
entry.Completed += Entry_Completed;
Po spuštění události se spustí vlastnost CompletedICommand Xamarin_Forms Completed data-linktype="absolute-path">zadaná vlastností Xamarin_Forms _Entry_ReturnCommand ReturnCommandobjectICommand _Entry_ReturnCommandParameter" data-linktype="absolute-path">. ReturnCommandParameterICommand
Textchanged
Událost TextChanged se používá k reakci na změnu obsahu pole.
TextChanged je vyvolána při Text každé Entry změně. Obslužná rutina události přebírá instanci TextChangedEventArgs . TextChangedEventArgsposkytuje přístup ke starým a novým hodnotám EntryText objektu prostřednictvím OldTextValue vlastností a NewTextValue :
void Entry_TextChanged (object sender, TextChangedEventArgs e)
{
var oldText = e.OldTextValue;
var newText = e.NewTextValue;
}
Událost TextChanged je možné přihlásit k odběru v jazyce XAML:
<Entry TextChanged="Entry_TextChanged" />
a C#:
var entry = new Entry ();
entry.TextChanged += Entry_TextChanged;
Stažení ukázky