Redaktor
Interfejs użytkownika aplikacji wieloplatformowej platformy .NET (.NET MAUI) Editor umożliwia wprowadzanie i edytowanie wielu wierszy tekstu.
Editor definiuje następujące właściwości:
AutoSize
, typuEditorAutoSizeOption
, określa, czy edytor zmieni rozmiar, aby uwzględnić dane wejściowe użytkownika. Domyślnie edytor nie ma automatycznego rozmiaru.HorizontalTextAlignment
, typu TextAlignment, definiuje wyrównanie w poziomie tekstu.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 Editor definiuje Completed
zdarzenie, które jest wywoływane, gdy użytkownik finalizuje tekst w Editor obiekcie za pomocą klucza zwrotnego.
Editor 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 Editor 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 Editor, zobacz Czcionki.
Tworzenie edytora
W poniższym przykładzie pokazano, jak utworzyć element Editor:
<Editor x:Name="editor"
Placeholder="Enter your response here"
HeightRequest="250"
TextChanged="OnEditorTextChanged"
Completed="OnEditorCompleted" />
Równoważny kod języka C# to:
Editor editor = new Editor { Placeholder = "Enter text", HeightRequest = 250 };
editor.TextChanged += OnEditorTextChanged;
editor.Completed += OnEditorCompleted;
Poniższy zrzut ekranu przedstawia wynikowy Editor 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 Editor zmianach i TextChangedEventArgs
podaj tekst przed i po zmianie za pomocą OldTextValue
właściwości i NewTextValue
:
void OnEditorTextChanged(object sender, TextChangedEventArgs e)
{
string oldText = e.OldTextValue;
string newText = e.NewTextValue;
string myText = editor.Text;
}
Zdarzenie Completed
jest wywoływane tylko w systemie Windows, gdy użytkownik zakończył wprowadzanie, naciskając Tab na klawiaturze lub koncentrując inną kontrolkę. Procedura obsługi zdarzenia to ogólny program obsługi zdarzeń:
void OnEditorCompleted(object sender, EventArgs e)
{
string text = ((Editor)sender).Text;
}
Ustawianie odstępów między znakami
Odstępy między znakami można zastosować do obiektu Editor , ustawiając CharacterSpacing
właściwość na double
wartość:
<Editor ...
CharacterSpacing="10" />
Wynikiem jest to, że znaki w tekście wyświetlanym przez Editor 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 Editor. Ta właściwość powinna być ustawiona na dodatnią liczbę całkowitą:
<Editor ... 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ą Editorelementu , wskazuje, że nie ma obowiązującego limitu liczby znaków, które mogą zostać wprowadzone.
Automatyczne ustawianie rozmiaru edytora
Element Editor można ustawić w celu automatycznego rozmiaru zawartości, ustawiając Editor.AutoSize
właściwość na TextChanges
wartość , która jest wartością EditorAutoSizeOption
wyliczenia. Ta wyliczenie ma dwie wartości:
Disabled
wskazuje, że automatyczna zmiana rozmiaru jest wyłączona i jest wartością domyślną.TextChanges
wskazuje, że włączono automatyczną zmianę rozmiaru.
Można to zrobić w następujący sposób:
<Editor Text="Enter text here"
AutoSize="TextChanges" />
Po włączeniu automatycznego zmieniania rozmiaru wysokość Editor obiektu zwiększy się, gdy użytkownik wypełni go tekstem, a wysokość spadnie wraz z usunięciem tekstu przez użytkownika. Może to służyć do zapewnienia prawidłowego Editor DataTemplate rozmiaru obiektów w rozmiarze CollectionView .
Ważne
Ustawienie Editor właściwości nie spowoduje automatycznego rozmiaru HeightRequest , jeśli właściwość została ustawiona.
Przekształcanie tekstu
Obiekt Editor 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:
<Editor Text="This text will be displayed in uppercase."
TextTransform="Uppercase" />
Dostosowywanie klawiatury
Klawiatura, która jest wyświetlana, gdy użytkownicy wchodzą w interakcję z elementem Editor , można ustawić 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:
<Editor 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:
<Editor>
<Editor.Keyboard>
<Keyboard x:FactoryMethod="Create">
<x:Arguments>
<KeyboardFlags>Suggestions,CapitalizeCharacter</KeyboardFlags>
</x:Arguments>
</Keyboard>
</Editor.Keyboard>
</Editor>
Równoważny kod języka C# to:
Editor editor = new Editor();
editor.Keyboard = Keyboard.Create(KeyboardFlags.Suggestions | KeyboardFlags.CapitalizeCharacter);
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 Editor na nazwie editor
, jeśli jest ona obecnie wyświetlana:
if (editor.IsSoftInputShowing())
await editor.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 dlatego należy je wyłączyć, ustawiając IsSpellCheckEnabled
właściwość na false
:
<Editor ... 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
:
<Editor ... 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 Editor przez ustawienie IsReadOnly
właściwości , która ma domyślną wartość false
, na true
wartość :
<Editor Text="This is a read-only Editor"
IsReadOnly="true" />