Xamarin.Forms Položka

Stáhnout ukázku Stažení ukázky

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:

  • 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" />

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 };

Příklad isPassword položky

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" };

Příklad zadání IsPassword a zástupného symbolu

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:

  • Never označuje, že se tlačítko vymazat nikdy nezobrazí. Toto je výchozí hodnota vlastnosti Entry.ClearButtonVisibility .
  • WhileEditing označuje, že se v souboru zobrazí tlačítko pro vymazání, zatímco má fokus a Entry text.

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:

Snímek obrazovky s objektem Entry s tlačítkem vymazat v iOSu a Androidu

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 :

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:

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:

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;

Příklad Entry TextColor

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");

Příklad položky BackgroundColor

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;