Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Interfejs użytkownika aplikacji wieloplatformowej platformy .NET (.NET MAUI) Entry umożliwia wprowadzenie i edycję pojedynczej linii tekstu. Ponadto Entry może być używany jako pole hasła.
Entry definiuje następujące właściwości:
-
ClearButtonVisibility, typuClearButtonVisibility, określa, czy wyświetlany jest przycisk do czyszczenia, co umożliwia użytkownikowi wyczyszczenie tekstu. Wartość domyślna tej właściwości gwarantuje, że nie jest wyświetlany przycisk czyszczenia. -
HorizontalTextAlignment, typu TextAlignment, definiuje wyrównanie poziome tekstu. -
IsPassword, typubool, określa, czy wpis powinien wizualnie zaciemniać wpisany tekst. -
ReturnCommand, typu ICommand, definiuje polecenie do wykonania po naciśnięciu klawisza Return. ReturnCommandParameter, typuobject, określa parametr dlaReturnCommand.-
ReturnType, typuReturnType, określa wygląd przycisku powrotu. -
VerticalTextAlignment, typu TextAlignment, definiuje wyrównanie pionowe tekstu.
Te właściwości są wspierane przez obiekty typu BindableProperty, co oznacza, że mogą być obiektami docelowymi powiązań danych i stylizowane.
Ponadto Entry definiuje zdarzenie Completed, które jest wywoływane, gdy użytkownik finalizuje tekst w Entry za pomocą klawisza Enter.
Entry pochodzi z InputView klasy, z której dziedziczy następujące właściwości:
-
CharacterSpacing, typudouble, ustawia odstępy między znakami w zawartości tekstowej, w tym wprowadzony przez użytkownika lub wyświetlany tekst i tekst zastępczy. - CursorPosition, typu int, definiuje pozycję kursora w edytorze.
-
FontAttributes, typuFontAttributes, określa styl tekstu. -
, typu , określa, czy tekst będzie odzwierciedlać preferencje skalowania ustawione w systemie operacyjnym. Wartość domyślna tej właściwości to true. , typu , definiuje rodzinę czcionek. -
FontSize, typudouble, definiuje rozmiar czcionki. -
IsReadOnly, typubool, określa, czy użytkownik powinien być uniemożliwiony w modyfikacji tekstu. Wartość domyślna tej właściwości tofalse. - IsSpellCheckEnabled, typu bool, steruje, czy sprawdzanie pisowni jest włączone.
-
IsTextPredictionEnabled, typubool, określa, czy jest włączone przewidywanie i automatyczna korekta tekstu. -
Keyboard, określa typKeyboard, miękkiej klawiatury wejściowej wyświetlanej podczas wprowadzania tekstu. -
MaxLength, typuint, definiuje maksymalną długość wejścia. -
Placeholdertypustringdefiniuje tekst wyświetlany, gdy element sterujący jest pusty. -
PlaceholderColor, typu Color, definiuje kolor tekstu zastępczego. -
SelectionLength, typuint, reprezentuje długość zaznaczonego tekstu w kontroli. -
Text, typustring, definiuje tekst wprowadzany do kontrolki. , typu , definiuje kolor wprowadzonego tekstu. -
TextTransform, typuTextTransform, określa sposób zapisu wielkich i małych liter wprowadzonego tekstu.
Te właściwości są wspierane przez obiekty typu BindableProperty, co oznacza, że mogą być obiektami docelowymi powiązań danych i stylizowane.
Ponadto InputView definiuje zdarzenie TextChanged, które jest zgłaszane, gdy tekst w Entry się zmienia. Obiekt towarzyszący zdarzeniu TextChangedEventArgs ma właściwości TextChanged i NewTextValue, które określają odpowiednio nowy i stary tekst.
Aby uzyskać informacje na temat określania czcionek na
Wskazówka
System Android dodaje obsługę powiadomień o zmianie wyboru na platformie .NET 10. W systemie Android kontrolka natywna przełącza się z AppCompatEditText na MauiAppCompatEditText, umożliwiając śledzenie zmian wyboru dla elementu Entry. W miarę zmiany zaznaczenia właściwości CursorPosition i SelectionLength są aktualizowane, aby można było reagować na zmiany zaznaczenia.
Aby obserwować aktualizacje wyboru, monitoruj zmiany właściwości dla CursorPosition i SelectionLength:
entry.PropertyChanged += (s, e) =>
{
if (e.PropertyName == nameof(Entry.CursorPosition) ||
e.PropertyName == nameof(Entry.SelectionLength))
{
var start = entry.CursorPosition;
var length = entry.SelectionLength;
// Respond to selection change (Android .NET 10+)
}
};
Alternatywnie dane wiążą właściwości i reagują na model widoku.
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:
Zrzut ekranu przedstawiający podstawowy wpis w systemie Android.
Note
W systemie iOS klawiatura ekranowa może zasłaniać pole wprowadzania tekstu, kiedy pole znajduje się blisko dolnej krawędzi ekranu, co utrudnia wprowadzanie tekstu. Jednak w aplikacji .NET MAUI dla systemu iOS strony automatycznie przewijają się, gdy klawiatura ekranowa zasłania pole wprowadzania tekstu, aby było ono powyżej klawiatury. Metodę KeyboardAutoManagerScroll.Disconnect w przestrzeni nazw Microsoft.Maui.Platform można wywołać, aby wyłączyć to domyślne zachowanie. Metodę KeyboardAutoManagerScroll.Connect można wywołać, aby ponownie włączyć zachowanie po jego wyłączeniu.
Dostęp do wprowadzonego tekstu można uzyskać, odczytując właściwość Text, a zdarzenia TextChanged i Completed sygnalizują, że tekst został zmieniony lub ukończony.
Zdarzenie TextChanged jest wywoływane, gdy tekst w Entry zmienia się, a TextChangedEventArgs podają tekst przed i po zmianie za pomocą właściwości OldTextValue oraz 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 klawisz Return na klawiaturze lub klawisz 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 każde ICommand określone przez właściwość ReturnCommand jest wykonywane, z object podanym przez właściwość ReturnCommandParameter jako parametr do ReturnCommand.
Note
Klasa VisualElement, która znajduje się w Entry hierarchii dziedziczenia, ma również zdarzenia Focused i Unfocused.
Ustawianie odstępów między znakami
Odstępy między znakami można zastosować do obiektu Entry, ustawiając właściwość CharacterSpacing na wartość double:
<Entry ...
CharacterSpacing="10" />
Wynikiem jest to, że znaki w tekście wyświetlanym przez Entry są oddzielone CharacterSpacing jednostkami niezależnymi od urządzenia.
Note
Wartość właściwości CharacterSpacing jest stosowana do tekstu wyświetlanego przez właściwości Text i Placeholder.
Ogranicz długość danych wejściowych
Można użyć właściwości MaxLength w celu ograniczenia dopuszczalnej długości danych wejściowych dla Entry. Ta właściwość powinna być ustawiona na dodatnią liczbę całkowitą:
<Entry ...
MaxLength="10" />
Wartość właściwości MaxLength 0 oznacza, że nie będą dozwolone żadne dane wejściowe, a wartość int.MaxValue, która jest domyślną wartością dla elementu Entry , wskazuje, że nie ma obowiązującego limitu na liczbę 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 w właściwości Text.
<Entry Text="Cursor position set"
CursorPosition="5" />
Domyślna wartość właściwości CursorPosition to 0, co oznacza, że tekst zostanie wstawiony na początku Entry.
Ponadto właściwość SelectionLength 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 właściwości SelectionLength to 0, co oznacza, że nie wybrano żadnego tekstu.
Wyświetl przycisk Wyczyść
Właściwość ClearButtonVisibility może być używana do kontrolowania, czy w Entry jest wyświetlany przycisk do czyszczenia, który pozwala użytkownikowi wyczyścić tekst. Ta właściwość powinna być ustawiona na członek wyliczenia ClearButtonVisibility.
-
Neverwskazuje, że przycisk wyczyść nigdy nie będzie wyświetlany. Jest to wartość domyślna dla właściwościClearButtonVisibility. -
WhileEditingwskazuje, że jasny przycisk zostanie wyświetlony w Entry w momencie, gdy ma on fokusa i zawiera tekst.
W poniższym przykładzie pokazano ustawienie właściwości:
<Entry Text=".NET MAUI"
ClearButtonVisibility="WhileEditing" />
Poniższy zrzut ekranu przedstawia Entry w systemie Android z włączoną funkcją przycisku czyszczenia:
Przekształcanie tekstu
Obiekt Entry może przekształcić wielkość liter tekstu przechowywanego we właściwości Text, ustawiając właściwość TextTransform na wartość wyliczenia TextTransform. Ta wyliczenie ma cztery wartości:
-
Nonewskazuje, że tekst nie będzie przekształcony. -
Defaultwskazuje, że będzie używane domyślne zachowanie platformy. Jest to wartość domyślna właściwościTextTransform. -
Lowercasewskazuje, że tekst zostanie przekształcony na małe litery. -
Uppercaseoznacza, że tekst zostanie przekształcony na drukowane 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
Entry udostępnia właściwość IsPassword, która wizualnie zaciemnia wprowadzony tekst, gdy jest ustawiona na wartość true:
<Entry IsPassword="true" />
Poniższy zrzut ekranu przedstawia Entry, którego dane wejściowe zostały zasłonięte:
Dostosowywanie klawiatury
Klawiatura ekranowa, która jest wyświetlana, gdy użytkownicy wchodzą w interakcję z Entry, może być ustawiona programowo poprzez właściwość Keyboard, na jedną z następujących właściwości klasy Keyboard:
-
Chat— używany do pisania wiadomości tekstowych 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 telefonicznych. -
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 właściwości Keyboard.
<Entry Keyboard="Chat" />
Klasa Keyboard ma również metodę fabryczną Create, która może być użyta do dostosowania klawiatury przez określenie kapitalizacji, sprawdzania pisowni i sposobu działania sugestii.
KeyboardFlags Wartości wyliczenia są określane jako argumenty metody, z czego zwracana jest niestandardowa Keyboard. Wyliczenie KeyboardFlags zawiera następujące wartości:
-
None— do klawiatury nie dodano żadnych funkcji. -
CapitalizeSentence– wskazuje, że pierwsza litera pierwszego wyrazu każdego wprowadzonego zdania zostanie automatycznie zamieniona na wielką. -
Spellcheck— wskazuje, że sprawdzanie pisowni będzie wykonywane na wprowadzonym tekście. -
Suggestions– wskazuje, że autouzupełnianie będzie oferowane dla wprowadzonego tekstu. -
CapitalizeWord— wskazuje, że pierwsza litera każdego wyrazu będzie automatycznie wielką literą. -
CapitalizeCharacter— wskazuje, że każdy znak będzie automatycznie wielką literą. -
CapitalizeNone— wskazuje, że nie nastąpi automatyczna kapitalizacja. -
All— wskazuje, że w wprowadzonym tekście zostanie zastosowane sprawdzanie pisowni, uzupełnianie wyrazów oraz rozpoczynanie zdań wielką literą.
Poniższy przykład kodu XAML pokazuje, jak dostosować domyślny Keyboard, aby oferować uzupełnianie wyrazów i pisać wielką literą każdy wprowadzony znak:
<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 klawisza Enter na miękkiej klawiaturze wirtualnej, która jest wyświetlana, gdy fokus jest aktywny na Entry, można dostosować, ustawiając właściwość ReturnType na wartość z wyliczenia ReturnType.
-
Default– wskazuje, że nie jest wymagany żaden określony klucz powrotny i że zostanie użyta wartość domyślna platformy. -
Done— wskazuje klawisz zwracania "Gotowe". -
Go— oznacza klawisz powrotu "Go". -
Next— wskazuje klawisz zwrotu "Dalej". -
Search— wskazuje klawisz powrotu "Wyszukaj". -
Send– wskazuje klawisz Enter "Send".
W poniższym przykładzie XAML pokazano, jak ustawić klucz zwrotny:
<Entry ReturnType="Send" />
Note
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 wywołane i zostanie wykonane dowolne ICommand określone przez właściwość ReturnCommand. Ponadto każdy object określony przez ReturnCommandParameter właściwość zostanie przekazany do ICommand jako parametr. Aby uzyskać więcej informacji na temat poleceń, zapoznaj się z sekcją Commanding (Polecenia).
Ukryj i pokaż miękką klawiaturę wejściową
Klasa SoftInputExtensions w przestrzeni nazw Microsoft.Maui udostępnia szereg metod rozszerzeń, które wspierają interakcję z klawiaturą programową na kontrolkach obsługujących wprowadzanie tekstu. Klasa definiuje następujące metody:
IsSoftInputShowing, który sprawdza, czy na urządzeniu jest aktualnie wyświetlana klawiatura ekranowa.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 ekranowej, jeśli jest obecnie ukryta.
W poniższym przykładzie pokazano, jak ukryć klawiaturę ekranową dla Entry o nazwie entry, jeśli jest aktualnie 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. 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 doświadczenie użytkownika i powinno zostać wyłączone przez ustawienie właściwości IsSpellCheckEnabled na false.
<Entry ... IsSpellCheckEnabled="false" />
Note
Gdy właściwość IsSpellCheckEnabled jest ustawiona na false, a niestandardowa klawiatura nie jest używana, natywny moduł sprawdzania pisowni zostanie wyłączony. Jeśli jednak ustawiono Keyboard, które wyłącza sprawdzanie pisowni, takie jak Keyboard.Chat, właściwość IsSpellCheckEnabled jest ignorowana. W związku z tym nie można użyć właściwości w celu włączenia sprawdzania pisowni dla Keyboard, które jawnie wyłącza tę funkcję.
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. 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 mogą powodować negatywne doświadczenia i powinny być wyłączone przez ustawienie właściwości IsTextPredictionEnabled na false.
<Entry ... IsTextPredictionEnabled="false" />
Note
Gdy właściwość IsTextPredictionEnabled jest ustawiona na false, a niestandardowa klawiatura nie jest używana, przewidywanie tekstu i automatyczna korekta tekstu są wyłączone. Jeśli jednak ustawiono Keyboard, które wyłącza przewidywanie tekstu, właściwość IsTextPredictionEnabled jest ignorowana. W związku z tym nie można użyć właściwości do włączenia przewidywania tekstu dla Keyboard, który jawnie to wyłącza.
Zapobieganie wpisowi tekstowemu
Użytkownikom można uniemożliwić modyfikowanie tekstu w Entry poprzez ustawienie właściwości IsReadOnly na true.
<Entry Text="User input won't be accepted."
IsReadOnly="true" />
Note
Właściwość IsReadonly nie zmienia wyglądu wizualnego obiektu Entry, w przeciwieństwie do właściwości , która również zmienia wygląd wizualny obiektu Entry na szary.