Wpis
Interfejs użytkownika aplikacji wieloplatformowej platformy .NET (.NET MAUI) Entry umożliwia wprowadzanie i edytowanie pojedynczego wiersza tekstu. Ponadto Entry element może być używany jako pole hasła.
Entry definiuje następujące właściwości:
ClearButtonVisibility
, typuClearButtonVisibility
, określa, czy jest wyświetlany przycisk wyczyść, co umożliwia użytkownikowi wyczyszczenie tekstu. Wartość domyślna tej właściwości gwarantuje, że nie jest wyświetlany przycisk wyczyść.HorizontalTextAlignment
, typu TextAlignment, definiuje wyrównanie w poziomie tekstu.IsPassword
, typubool
, określa, czy wpis powinien wizualnie zaciemniać tekst wpisany.ReturnCommand
, typu ICommand, definiuje polecenie do wykonania po naciśnięciu zwrotnego.ReturnCommandParameter
, typuobject
, określa parametr dla .ReturnCommand
ReturnType
, typuReturnType
, określa wygląd przycisku powrotu.VerticalTextAlignment
, typu TextAlignment, definiuje wyrównanie w pionie tekstu.
Te właściwości są wspierane przez BindableProperty obiekty, co oznacza, że mogą być obiektami docelowymi powiązań danych i stylizowanymi.
Ponadto Entry definiuje Completed
zdarzenie, które jest wywoływane, gdy użytkownik finalizuje tekst w Entry obiekcie za pomocą klucza zwrotnego.
Entry pochodzi z InputView klasy, z której dziedziczy następujące właściwości:
CharacterSpacing
, typudouble
, ustawia odstępy między znakami we wprowadzonym tekście.CursorPosition
, typuint
, definiuje położenie kursora w edytorze.FontAttributes
, typuFontAttributes
, określa styl tekstu.FontAutoScalingEnabled
, typubool
, określa, czy tekst będzie odzwierciedlać preferencje skalowania ustawione w systemie operacyjnym. Wartość domyślna tej właściwości totrue
.FontFamily
, typustring
, definiuje rodzinę czcionek.FontSize
, typudouble
, definiuje rozmiar czcionki.IsReadOnly
, typubool
, określa, czy użytkownik nie powinien modyfikować tekstu. Wartość domyślna tej właściwości tofalse
.IsSpellCheckEnabled
, typubool
, określa, czy sprawdzanie pisowni jest włączone.IsTextPredictionEnabled
, typubool
, określa, czy włączono przewidywanie tekstu i automatyczną korektę tekstu.Keyboard
, typuKeyboard
, określa miękką klawiaturę wejściową wyświetlaną podczas wprowadzania tekstu.MaxLength
, typuint
, definiuje maksymalną długość danych wejściowych.Placeholder
, typustring
, definiuje tekst wyświetlany, gdy kontrolka jest pusta.PlaceholderColor
, typu Color, definiuje kolor tekstu zastępczego.SelectionLength
, typuint
, reprezentuje długość zaznaczonego tekstu w kontrolce.Text
, typustring
, definiuje tekst wprowadzony w kontrolce.TextColor
, typu Color, definiuje kolor wprowadzonego tekstu.TextTransform
, typuTextTransform
, określa wielkość liter wprowadzonego tekstu.
Te właściwości są wspierane przez BindableProperty obiekty, co oznacza, że mogą być obiektami docelowymi powiązań danych i stylizowanymi.
Ponadto InputView definiuje TextChanged
zdarzenie, które jest zgłaszane, gdy tekst w Entry zmianach. Obiekt TextChangedEventArgs
, który towarzyszy TextChanged
zdarzeniu, ma NewTextValue
właściwości i OldTextValue
, które określają odpowiednio nowy i stary tekst.
Aby uzyskać informacje na temat określania czcionek na obiekcie Entry, zobacz Czcionki.
Tworzenie wpisu
W poniższym przykładzie pokazano, jak utworzyć element Entry:
<Entry x:Name="entry"
Placeholder="Enter text"
TextChanged="OnEntryTextChanged"
Completed="OnEntryCompleted" />
Równoważny kod języka C# to:
Entry entry = new Entry { Placeholder = "Enter text" };
entry.TextChanged += OnEntryTextChanged;
entry.Completed += OnEntryCompleted;
Poniższy zrzut ekranu przedstawia wynikowy Entry w systemie Android:
Uwaga
W systemie iOS klawiatura wprowadzania nietrwałego może obejmować pole wprowadzania tekstu, gdy pole znajduje się w dolnej części ekranu, co utrudnia wprowadzanie tekstu. Jednak w aplikacji .NET MAUI dla systemu iOS strony automatycznie przewijają się, gdy klawiatura nietrwała będzie obejmować pole wprowadzania tekstu, aby pole było powyżej klawiatury nietrwałej wprowadzania. Metodę KeyboardAutoManagerScroll.Disconnect
w Microsoft.Maui.Platform
przestrzeni nazw można wywołać, aby wyłączyć to domyślne zachowanie. Metodę KeyboardAutoManagerScroll.Connect
można wywołać, aby ponownie włączyć zachowanie po jej wyłączeniu.
Dostęp do wprowadzonego Text
tekstu można uzyskać, odczytując właściwość , a TextChanged
zdarzenia i Completed
sygnalizuje, że tekst został zmieniony lub ukończony.
Zdarzenie TextChanged
jest wywoływane, gdy tekst w Entry zmianach i TextChangedEventArgs
podaj tekst przed i po zmianie za pomocą OldTextValue
właściwości i NewTextValue
:
void OnEntryTextChanged(object sender, TextChangedEventArgs e)
{
string oldText = e.OldTextValue;
string newText = e.NewTextValue;
string myText = entry.Text;
}
Zdarzenie Completed
jest zgłaszane, gdy użytkownik zakończył dane wejściowe, naciskając Return na klawiaturze lub naciskając Tab w systemie Windows. Procedura obsługi zdarzenia to ogólny program obsługi zdarzeń:
void OnEntryCompleted(object sender, EventArgs e)
{
string text = ((Entry)sender).Text;
}
Po uruchomieniu Completed
zdarzenia wszystkie ICommand określone przez ReturnCommand
właściwość są wykonywane, z object
określonym przez ReturnCommandParameter
właściwość przekazywaną ReturnCommand
do właściwości .
Uwaga
Klasa VisualElement , która znajduje się w Entry hierarchii dziedziczenia, ma Focused
również zdarzenia i Unfocused
.
Ustawianie odstępów między znakami
Odstępy między znakami można zastosować do obiektu Entry , ustawiając CharacterSpacing
właściwość na double
wartość:
<Entry ...
CharacterSpacing="10" />
Wynikiem jest to, że znaki w tekście wyświetlanym przez Entry element są oddzielone CharacterSpacing
od siebie jednostkami niezależnymi od urządzenia.
Uwaga
Wartość CharacterSpacing
właściwości jest stosowana do tekstu wyświetlanego Text
przez właściwości i Placeholder
.
Ogranicz długość danych wejściowych
Właściwość MaxLength
może służyć do ograniczenia długości wejściowej dozwolonej dla elementu Entry. Ta właściwość powinna być ustawiona na dodatnią liczbę całkowitą:
<Entry ...
MaxLength="10" />
MaxLength
Wartość właściwości 0 wskazuje, że żadne dane wejściowe nie będą dozwolone, a wartość int.MaxValue
, która jest wartością domyślną Entryelementu , wskazuje, że nie ma obowiązującego limitu liczby znaków, które mogą zostać wprowadzone.
Ustawianie położenia kursora i długości zaznaczenia tekstu
Właściwość CursorPosition
może służyć do zwracania lub ustawiania położenia, w którym następny znak zostanie wstawiony do ciągu przechowywanego Text
we właściwości :
<Entry Text="Cursor position set"
CursorPosition="5" />
Wartość CursorPosition
domyślna właściwości to 0, co oznacza, że tekst zostanie wstawiony na początku .Entry
Ponadto SelectionLength
właściwość może służyć do zwracania lub ustawiania długości zaznaczenia tekstu w obiekcie Entry:
<Entry Text="Cursor position and selection length set"
CursorPosition="2"
SelectionLength="10" />
Wartość domyślna SelectionLength
właściwości to 0, co oznacza, że nie wybrano żadnego tekstu.
Wyświetlanie przycisku wyczyść
Właściwość ClearButtonVisibility
może służyć do kontrolowania, czy jest Entry wyświetlany przycisk wyczyść, co umożliwia użytkownikowi wyczyszczenie tekstu. Ta właściwość powinna być ustawiona na element członkowski ClearButtonVisibility
wyliczenia:
Never
wskazuje, że przycisk wyczyść nigdy nie będzie wyświetlany. Jest to wartość domyślnaClearButtonVisibility
właściwości .WhileEditing
wskazuje, że w elemecie Entryzostanie wyświetlony jasny przycisk , który ma fokus i tekst.
W poniższym przykładzie pokazano ustawienie właściwości:
<Entry Text=".NET MAUI"
ClearButtonVisibility="WhileEditing" />
Poniższy zrzut ekranu przedstawia w Entry systemie Android z włączonym przyciskiem wyczyść:
Przekształcanie tekstu
Obiekt Entry może przekształcić wielkość liter tekstu przechowywanego Text
we właściwości, ustawiając TextTransform
właściwość na wartość TextTransform
wyliczenia. Ta wyliczenie ma cztery wartości:
None
wskazuje, że tekst nie zostanie przekształcony.Default
wskazuje, że będzie używane domyślne zachowanie platformy. Jest to wartość domyślnaTextTransform
właściwości.Lowercase
wskazuje, że tekst zostanie przekształcony w małe litery.Uppercase
wskazuje, że tekst zostanie przekształcony na wielkie litery.
W poniższym przykładzie pokazano przekształcanie tekstu na wielkie litery:
<Entry Text="This text will be displayed in uppercase."
TextTransform="Uppercase" />
Niejasny wpis tekstowy
EntryIsPassword
Udostępnia właściwość, która wizualnie zaciemnia tekst wprowadzony, gdy jest ustawiona na true
wartość :
<Entry IsPassword="true" />
Poniższy zrzut ekranu przedstawia Entry dane wejściowe, których dane wejściowe zostały zasłonięte:
Dostosowywanie klawiatury
Klawiatura nietrwała wprowadzania, która jest wyświetlana, gdy użytkownicy wchodzą w interakcję z elementem Entry , mogą być ustawiane programowo za pośrednictwem Keyboard
właściwości na jedną z następujących właściwości klasy Keyboard
:
Chat
— używany do tworzenia tekstu i miejsc, w których emoji są przydatne.Default
— klawiatura domyślna.Email
— używane podczas wprowadzania adresów e-mail.Numeric
— używane podczas wprowadzania liczb.Plain
— używany podczas wprowadzania tekstu bez żadnego określonegoKeyboardFlags
.Telephone
– używane podczas wprowadzania numerów telefonów.Text
— używany podczas wprowadzania tekstu.Url
— służy do wprowadzania ścieżek plików i adresów internetowych.
W poniższym przykładzie pokazano ustawienie Keyboard
właściwości:
<Entry Keyboard="Chat" />
Klasa Keyboard
ma również metodę Create
fabryki, która może służyć do dostosowywania klawiatury przez określenie wielkich liter, sprawdzania pisowni i zachowania sugestii. KeyboardFlags
Wartości wyliczenia są określane jako argumenty metody, przy czym zwracana jest niestandardowa Keyboard
wartość . Wyliczenie KeyboardFlags
zawiera następujące wartości:
None
— do klawiatury nie są dodawane żadne funkcje.CapitalizeSentence
– wskazuje, że pierwsza litera pierwszego wyrazu każdego wprowadzonego zdania zostanie automatycznie wpisana literą.Spellcheck
— wskazuje, że sprawdzanie pisowni będzie wykonywane na wprowadzonym tekście.Suggestions
— wskazuje, że uzupełnianie wyrazów będzie oferowane dla wprowadzonego tekstu.CapitalizeWord
— wskazuje, że pierwsza litera każdego wyrazu będzie automatycznie wielkich liter.CapitalizeCharacter
— wskazuje, że każdy znak będzie automatycznie wielkich liter.CapitalizeNone
— wskazuje, że nie nastąpi automatyczna kapitalizowanie.All
— wskazuje, że w wprowadzonym tekście wystąpi sprawdzanie pisowni, uzupełnianie wyrazów i wielkie litery zdań.
Poniższy przykład kodu XAML pokazuje, jak dostosować wartość domyślną Keyboard
, aby oferować uzupełnianie wyrazów i wielką literę każdego wprowadzonego znaku:
<Entry Placeholder="Enter text here">
<Entry.Keyboard>
<Keyboard x:FactoryMethod="Create">
<x:Arguments>
<KeyboardFlags>Suggestions,CapitalizeCharacter</KeyboardFlags>
</x:Arguments>
</Keyboard>
</Entry.Keyboard>
</Entry>
Równoważny kod języka C# to:
Entry entry = new Entry { Placeholder = "Enter text here" };
entry.Keyboard = Keyboard.Create(KeyboardFlags.Suggestions | KeyboardFlags.CapitalizeCharacter);
Dostosowywanie klucza powrotnego
Wygląd zwrotnego na klawiaturze nietrwałej wprowadzania, która jest wyświetlana po Entry ustawieniu fokusu, można dostosować, ustawiając ReturnType
właściwość na wartość ReturnType
wyliczenia:
Default
— wskazuje, że nie jest wymagany żaden określony klucz powrotny i że zostanie użyta wartość domyślna platformy.Done
— wskazuje "Done" return key (Gotowe) zwracany klucz.Go
— wskazuje zwrotny "Go".Next
— wskazuje zwrotny "Dalej".Search
— wskazuje klucz zwrotny "Wyszukaj".Send
— wskazuje klucz zwrotny "Wyślij".
W poniższym przykładzie XAML pokazano, jak ustawić klucz zwrotny:
<Entry ReturnType="Send" />
Uwaga
Dokładny wygląd klucza zwrotnego zależy od platformy. W systemie iOS klucz zwrotny jest przyciskiem opartym na tekście. Jednak w systemach Android i Windows klucz zwrotny jest przyciskiem opartym na ikonach.
Po naciśnięciu Return zdarzenie zostanie uruchomione i zostanie wykonane dowolne ICommand określone przez ReturnCommand
właściwość.Completed
Ponadto wszystkie object
określone przez ReturnCommandParameter
właściwość zostaną przekazane jako ICommand parametr. Aby uzyskać więcej informacji na temat poleceń, zobacz Commanding (Polecenia).
Ukryj i pokaż miękką klawiaturę wejściową
Klasa SoftInputExtensions
w Microsoft.Maui
przestrzeni nazw udostępnia szereg metod rozszerzeń, które obsługują interakcję z klawiaturą nietrwałą wprowadzania w kontrolkach obsługujących wprowadzanie tekstu. Klasa definiuje następujące metody:
IsSoftInputShowing
, który sprawdza, czy urządzenie jest obecnie wyświetlane miękkie klawiatury wejściowej.HideSoftInputAsync
, który podejmie próbę ukrycia miękkiej klawiatury wejściowej, jeśli jest ona obecnie wyświetlana.ShowSoftInputAsync
, który podejmie próbę wyświetlenia klawiatury nietrwałej wprowadzania, jeśli jest ona obecnie ukryta.
W poniższym przykładzie pokazano, jak ukryć klawiaturę wprowadzania nietrwałego Entry na nazwie entry
, jeśli jest ona obecnie wyświetlana:
if (entry.IsSoftInputShowing())
await entry.HideSoftInputAsync(System.Threading.CancellationToken.None);
Włączanie i wyłączanie sprawdzania pisowni
Właściwość IsSpellCheckEnabled
określa, czy sprawdzanie pisowni jest włączone. Domyślnie właściwość jest ustawiona na true
wartość . Gdy użytkownik wprowadza tekst, wskazywane są błędy pisowni.
Jednak w przypadku niektórych scenariuszy wprowadzania tekstu, takich jak wprowadzenie nazwy użytkownika, sprawdzanie pisowni zapewnia negatywne środowisko i powinno zostać wyłączone przez ustawienie IsSpellCheckEnabled
właściwości na false
:
<Entry ... IsSpellCheckEnabled="false" />
Uwaga
IsSpellCheckEnabled
Gdy właściwość jest ustawiona na false
, a niestandardowa klawiatura nie jest używana, natywny moduł sprawdzania pisowni zostanie wyłączony. Jeśli Keyboard
jednak ustawiono ustawienie, które wyłącza sprawdzanie pisowni, takie jak Keyboard.Chat
, IsSpellCheckEnabled
właściwość jest ignorowana. W związku z tym nie można użyć właściwości w celu włączenia sprawdzania pisowni dla elementu Keyboard
, który jawnie go wyłącza.
Włączanie i wyłączanie przewidywania tekstu
Właściwość IsTextPredictionEnabled
określa, czy włączono przewidywanie tekstu i automatyczną korektę tekstu. Domyślnie właściwość jest ustawiona na true
wartość . Gdy użytkownik wprowadza tekst, wyświetlane są przewidywania wyrazów.
Jednak w przypadku niektórych scenariuszy wprowadzania tekstu, takich jak wprowadzanie nazwy użytkownika, przewidywanie tekstu i automatyczna korekta tekstu zapewnia negatywne środowisko i powinno być wyłączone przez ustawienie IsTextPredictionEnabled
właściwości na false
:
<Entry ... IsTextPredictionEnabled="false" />
Uwaga
IsTextPredictionEnabled
Gdy właściwość jest ustawiona na false
, a niestandardowa klawiatura nie jest używana, przewidywanie tekstu i automatyczna korekta tekstu jest wyłączona. Jeśli Keyboard
jednak ustawiono ustawienie, które wyłącza przewidywanie tekstu, IsTextPredictionEnabled
właściwość jest ignorowana. W związku z tym nie można użyć właściwości do włączenia przewidywania tekstu dla elementu Keyboard
, który jawnie go wyłącza.
Zapobieganie wpisowi tekstowemu
Użytkownikom można uniemożliwić modyfikowanie tekstu w obiekcie Entry przez ustawienie IsReadOnly
właściwości na true
:
<Entry Text="User input won't be accepted."
IsReadOnly="true" />