Aracılığıyla paylaş


Giriş

.NET Çok Platformlu Uygulama Kullanıcı Arabirimi (.NET MAUI), Entry tek bir metin satırı girmenize ve düzenlemenize olanak tanır. Buna ek olarak, Entry parola alanı olarak da kullanılabilir.

Entry aşağıdaki özellikleri tanımlar:

  • ClearButtonVisibility, türünde ClearButtonVisibility, kullanıcının metni temizlemesini sağlayan bir temizle düğmesinin görüntülenip görüntülenmeyeceğini denetler. Bu özelliğin varsayılan değeri, net bir düğmenin görüntülenmemesini sağlar.
  • HorizontalTextAlignment, türündeki TextAlignmentmetnin yatay hizalamasını tanımlar.
  • IsPasswordtüründe bool, girdinin yazılan metni görsel olarak gizleyip gizlemeyeceğini belirtir.
  • ReturnCommandICommandtüründe, dönüş tuşuna basıldığında yürütülecek komutu tanımlar.
  • ReturnCommandParameter, türündeki objectparametresini ReturnCommandbelirtir.
  • ReturnTypeReturnTypetüründe, dönüş düğmesinin görünümünü belirtir.
  • VerticalTextAlignment, türündeki TextAlignmentmetnin dikey hizalamasını tanımlar.

Bu özellikler nesneler tarafından BindableProperty desteklenir; bu da veri bağlamalarının hedefleri olabileceği ve stillendirilebileceği anlamına gelir.

Buna ek olarak, Entry kullanıcı dönüş anahtarıyla içindeki metni Entry son haline getirdiğinde tetiklenen bir Completed olay tanımlar.

EntryInputView aşağıdaki özellikleri devraldığı sınıfından türetilir:

  • CharacterSpacing, türüne göre double, girilen metindeki karakterler arasındaki aralığı ayarlar.
  • CursorPositiontüründe int, imlecin düzenleyici içindeki konumunu tanımlar.
  • FontAttributes, türüne göre FontAttributesmetin stilini belirler.
  • FontAutoScalingEnabledtüründe bool, metnin işletim sisteminde ayarlanan ölçeklendirme tercihlerini yansıtıp yansıtmayacağını tanımlar. Bu özelliğin varsayılan değeridir true.
  • FontFamily, türündeki stringyazı tipi ailesini tanımlar.
  • FontSize, türündeki doubleyazı tipi boyutunu tanımlar.
  • IsReadOnlytüründe bool, kullanıcının metin değiştirmesinin engellenip engellenmeyeceğini tanımlar. Bu özelliğin varsayılan değeridir false.
  • IsSpellCheckEnabled, türüne göre boolyazım denetiminin etkinleştirilip etkinleştirilmediğini denetler.
  • IsTextPredictionEnabled, türüne göre boolmetin tahmininin ve otomatik metin düzeltmenin etkinleştirilip etkinleştirilmediğini denetler.
  • Keyboardtüründe Keyboard, metin girerken görüntülenen geçici giriş klavyesini belirtir.
  • MaxLength, türündeki intmaksimum giriş uzunluğunu tanımlar.
  • Placeholder, türünde string, denetim boş olduğunda görüntülenen metni tanımlar.
  • PlaceholderColor, türündeki Coloryer tutucu metnin rengini tanımlar.
  • SelectionLength, türünde int, denetim içindeki seçili metnin uzunluğunu temsil eder.
  • Text, türünde string, denetime girilen metni tanımlar.
  • TextColor, türündeki Color, girilen metnin rengini tanımlar.
  • TextTransformtüründe TextTransform, girilen metnin büyük/küçük harflerini belirtir.

Bu özellikler nesneler tarafından BindableProperty desteklenir; bu da veri bağlamalarının hedefleri olabileceği ve stillendirilebileceği anlamına gelir.

Ayrıca, InputView içindeki metin değiştiğinde Entry tetiklenen bir TextChanged olay tanımlar. Olaya TextChangedEventArgs eşlik eden nesne, TextChanged sırasıyla yeni ve eski metni belirten ve OldTextValue özelliklerine sahiptirNewTextValue.

üzerinde Entryyazı tiplerini belirtme hakkında bilgi için bkz . Yazı Tipleri.

Giriş Oluşturma

Aşağıdaki örnekte nasıl oluşturulacağı gösterilmektedir Entry:

<Entry x:Name="entry"
       Placeholder="Enter text"
       TextChanged="OnEntryTextChanged"
       Completed="OnEntryCompleted" />

Eşdeğer C# kodu:

Entry entry = new Entry { Placeholder = "Enter text" };
entry.TextChanged += OnEntryTextChanged;
entry.Completed += OnEntryCompleted;

Aşağıdaki ekran görüntüsünde Android'de elde edilen sonuç Entry gösterilmektedir:

Android'de temel bir Girdinin ekran görüntüsü.

Not

iOS'ta, alan ekranın alt kısmına yaklaştığında yumuşak giriş klavyesi metin girişi alanını kapsayarak metin girmeyi zorlaştırabilir. Ancak bir .NET MAUI iOS uygulamasında, yumuşak giriş klavyesi bir metin giriş alanını kapladığında sayfalar otomatik olarak kaydırılır, böylece alan yumuşak giriş klavyesinin üzerinde olur. Bu KeyboardAutoManagerScroll.Disconnect varsayılan davranışı devre dışı bırakmak için ad alanında yöntemi Microsoft.Maui.Platform çağrılabilir. Yöntemi KeyboardAutoManagerScroll.Connect , devre dışı bırakıldıktan sonra davranışı yeniden etkinleştirmek için çağrılabilir.

Girilen metne Text özelliği okunarak erişilebilir ve TextChanged ve Completed olayları metnin değiştiğini veya tamamlandığını gösterir.

Olay TextChanged , içindeki metin değiştiğinde Entry oluşturulur ve TextChangedEventArgs ve özellikleri aracılığıyla OldTextValue NewTextValue değişiklik öncesinde ve sonrasındaki metni sağlar:

void OnEntryTextChanged(object sender, TextChangedEventArgs e)
{
    string oldText = e.OldTextValue;
    string newText = e.NewTextValue;
    string myText = entry.Text;
}

OlayCompleted, kullanıcı girişi sonlandırdığında klavyede Return tuşuna basarak veya Windows'da Sekme tuşuna basarak tetikler. Olayın işleyicisi genel bir olay işleyicisidir:

void OnEntryCompleted(object sender, EventArgs e)
{
   string text = ((Entry)sender).Text;
}

Olay tetiklendiğindeCompleted, özelliği tarafından ReturnCommand belirtilen herhangi biri ICommand yürütülür ve object özelliği tarafından ReturnCommandParameter belirtilen öğesine geçirilirReturnCommand.

Not

VisualElement Devralma hiyerarşisindeki sınıfın Entry da ve Unfocused olayları vardırFocused.

Karakter aralığını ayarlama

Karakter aralığı özelliği bir double değere ayarlanarak CharacterSpacing bir'e uygulanabilirEntry:

<Entry ...
       CharacterSpacing="10" />

Sonuç, tarafından görüntülenen metindeki karakterlerin cihazdan Entry bağımsız birimler halinde aralıklı CharacterSpacing olmasıdır.

Not

özellik CharacterSpacing değeri ve Placeholder özellikleri tarafından görüntülenen metne Text uygulanır.

Giriş uzunluğunu sınırla

MaxLength özelliği, için izin verilen giriş uzunluğunu sınırlamak Entryiçin kullanılabilir. Bu özellik pozitif bir tamsayıya ayarlanmalıdır:

<Entry ...
       MaxLength="10" />

MaxLength 0 özellik değeri hiçbir girişe izin verilmeyeceğini belirtir ve değeri için varsayılan değer int.MaxValueEntryolan değeri girilebilecek karakter sayısı üzerinde geçerli bir sınır olmadığını gösterir.

İmleç konumunu ve metin seçimi uzunluğunu ayarlama

özelliği, CursorPosition özelliğinde depolanan Text dizeye sonraki karakterin eklendiği konumu döndürmek veya ayarlamak için kullanılabilir:

<Entry Text="Cursor position set"
       CursorPosition="5" />

Özelliğinin CursorPosition varsayılan değeri 0'dır ve bu, metnin öğesinin Entrybaşlangıcına eklendiğini gösterir.

Ayrıca, SelectionLength özelliği içinde metin seçiminin Entryuzunluğunu döndürmek veya ayarlamak için kullanılabilir:

<Entry Text="Cursor position and selection length set"
       CursorPosition="2"
       SelectionLength="10" />

Özelliğin SelectionLength varsayılan değeri 0'dır ve bu değer metin seçilmediğini gösterir.

Temiz bir düğme görüntüleme

ClearButtonVisibility özelliği, kullanıcının metni temizlemesini sağlayan net bir düğme görüntüleyip Entry görüntülemediğini denetlemek için kullanılabilir. Bu özellik bir ClearButtonVisibility numaralandırma üyesine ayarlanmalıdır:

  • Never temiz bir düğmenin hiçbir zaman görüntülenmeyeceğini gösterir. Bu özellik için ClearButtonVisibility varsayılan değerdir.
  • WhileEditing , içinde net bir düğmenin Entrygörüntüleneceğini, odak ve metin içerdiğini gösterir.

Aşağıdaki örnekte özelliğin ayarlanması gösterilmektedir:

<Entry Text=".NET MAUI"
       ClearButtonVisibility="WhileEditing" />

Aşağıdaki ekran görüntüsünde Android'de temizle düğmesi etkin bir Entry ekran görüntüsü gösterilmektedir:

Android'de açık bir düğmeyle temel bir Girdinin ekran görüntüsü.

Metin dönüştürme

, Entry özelliğini sabit listesi değerine ayarlayarak TextTransform özelliğinde Text depolanan metninin TextTransform büyük/küçük harflerini dönüştürebilir. Bu sabit listesi dört değere sahiptir:

  • None metnin dönüştürülmeyeceğini gösterir.
  • Default platform için varsayılan davranışın kullanılacağını belirtir. Bu özelliğin varsayılan değeridir TextTransform .
  • Lowercase metnin küçük harfe dönüştürüleceğini gösterir.
  • Uppercase metnin büyük harfe dönüştürüleceğini gösterir.

Aşağıdaki örnekte metni büyük harfe dönüştürme gösterilmektedir:

<Entry Text="This text will be displayed in uppercase."
       TextTransform="Uppercase" />

Belirsiz metin girişi

EntryIsPassword, olarak ayarlandığında truegirilen metni görsel olarak gizleyen özelliğini sağlar:

<Entry IsPassword="true" />

Aşağıdaki ekran görüntüsünde, girişi gizlenmiş olan bir Entry gösterilmektedir:

IsPassword değerinin true olarak ayarlandığı temel girdinin ekran görüntüsü.

Klavyeyi özelleştirme

Kullanıcılar ile Entry etkileşim kurduğunda sunulan geçici giriş klavyesi, özelliği aracılığıyla Keyboard program aracılığıyla sınıfından aşağıdaki özelliklerden Keyboard birine ayarlanabilir:

  • Chat – emojilerin yararlı olduğu metinler ve yerler için kullanılır.
  • Default – varsayılan klavye.
  • Email – e-posta adresleri girilirken kullanılır.
  • Numeric – sayılar girilirken kullanılır.
  • Plain – herhangi bir KeyboardFlags belirtilmeden metin girerken kullanılır.
  • Telephone – telefon numaraları girilirken kullanılır.
  • Text – metin girerken kullanılır.
  • Url – dosya yollarını ve web adreslerini girmek için kullanılır.

Aşağıdaki örnekte özelliğin ayarlanması gösterilmektedir Keyboard :

<Entry Keyboard="Chat" />

Sınıfı ayrıca Keyboard büyük harfe çevirme, yazım denetimi ve öneri davranışı belirterek klavyeyi özelleştirmek için kullanılabilecek bir fabrika yöntemine sahiptir Create . KeyboardFlags sabit listesi değerleri yöntemine bağımsız değişken olarak belirtilir ve özelleştirilmiş Keyboard bir değer döndürülür. Numaralandırma KeyboardFlags aşağıdaki değerleri içerir:

  • None – klavyeye özellik eklenmez.
  • CapitalizeSentence – girilen her tümcenin ilk sözcüğünün ilk harfinin otomatik olarak büyük harfe dönüştürüleceğini belirtir.
  • Spellcheck – girilen metinde yazım denetiminin gerçekleştirileceğini gösterir.
  • Suggestions – girilen metinde sözcük tamamlamalarının sunulacağını belirtir.
  • CapitalizeWord – her sözcüğün ilk harfinin otomatik olarak büyük harfe yazılacağını belirtir.
  • CapitalizeCharacter – her karakterin otomatik olarak büyük harfe yazılacağını gösterir.
  • CapitalizeNone – otomatik büyük harfe çevirme gerçekleşmeyeceğini gösterir.
  • All – girilen metinde yazım denetimi, sözcük tamamlamaları ve tümce büyük harf kullanımını gösterir.

Aşağıdaki XAML kod örneğinde, sözcük tamamlamaları sunmak ve girilen her karakteri büyük harfe çevirme amacıyla varsayılanın Keyboard nasıl özelleştirileceği gösterilmektedir:

<Entry Placeholder="Enter text here">
    <Entry.Keyboard>
        <Keyboard x:FactoryMethod="Create">
            <x:Arguments>
                <KeyboardFlags>Suggestions,CapitalizeCharacter</KeyboardFlags>
            </x:Arguments>
        </Keyboard>
    </Entry.Keyboard>
</Entry>

Eşdeğer C# kodu:

Entry entry = new Entry { Placeholder = "Enter text here" };
entry.Keyboard = Keyboard.Create(KeyboardFlags.Suggestions | KeyboardFlags.CapitalizeCharacter);

Dönüş anahtarını özelleştirme

Bir odak olduğunda Entry görüntülenen geçici giriş klavyesinde dönüş tuşunun görünümü, özelliği sabit listesi değerine ReturnType ayarlanarak ReturnType özelleştirilebilir:

  • Default – belirli bir dönüş anahtarına gerek olmadığını ve platform varsayılan değerinin kullanılacağını belirtir.
  • Done – "Bitti" dönüş anahtarını gösterir.
  • Go – "Go" dönüş anahtarını gösterir.
  • Next – bir "İleri" dönüş anahtarını gösterir.
  • Search – bir "Arama" dönüş anahtarını gösterir.
  • Send – "Gönder" dönüş anahtarını gösterir.

Aşağıdaki XAML örneği, dönüş anahtarının nasıl ayarlandığını gösterir:

<Entry ReturnType="Send" />

Not

Dönüş anahtarının tam görünümü platforma bağlıdır. iOS'ta dönüş tuşu metin tabanlı bir düğmedir. Ancak Android ve Windows'da dönüş tuşu simge tabanlı bir düğmedir.

Return tuşuna basıldığında olay Completed tetikler ve özelliği tarafından ReturnCommand belirtilenler ICommand yürütülür. Ayrıca, özelliği tarafından ReturnCommandParameter belirtilen herhangi biri object parametresi olarak geçirilirICommand. Komutlar hakkında daha fazla bilgi için bkz . Komut oluşturma.

Yumuşak giriş klavyesini gizleme ve gösterme

SoftInputExtensions sınıfı, ad alanındaMicrosoft.Maui, metin girişini destekleyen denetimlerde yumuşak giriş klavyesi ile etkileşim kurmayı destekleyen bir dizi uzantı yöntemi sağlar. sınıfı aşağıdaki yöntemleri tanımlar:

  • IsSoftInputShowing, cihazın şu anda yumuşak giriş klavyesini gösterip göstermediğini denetler.
  • HideSoftInputAsync, şu anda gösteriliyorsa yumuşak giriş klavyesini gizlemeye çalışır.
  • ShowSoftInputAsync, şu anda gizliyse yumuşak giriş klavyesini göstermeye çalışır.

Aşağıdaki örnekte, şu anda gösteriliyorsa, adlı entrybir Entry üzerinde geçici giriş klavyesinin nasıl gizlendiğini gösterir:

if (entry.IsSoftInputShowing())
    await entry.HideSoftInputAsync(System.Threading.CancellationToken.None);

Yazım denetimini etkinleştirme ve devre dışı bırakma

özelliği yazım IsSpellCheckEnabled denetiminin etkinleştirilip etkinleştirilmediğini denetler. Varsayılan olarak özelliği olarak trueayarlanır. Kullanıcı metin girerken, yazım hataları belirtilir.

Ancak, kullanıcı adı girme gibi bazı metin girişi senaryolarında yazım denetimi olumsuz bir deneyim sağlar ve özelliği falseolarak ayarlanarak IsSpellCheckEnabled devre dışı bırakılmalıdır:

<Entry ... IsSpellCheckEnabled="false" />

Not

IsSpellCheckEnabled özelliği olarak falseayarlandığında ve özel bir klavye kullanılmadığında, yerel yazım denetleyicisi devre dışı bırakılır. Ancak, gibi Keyboard.ChatIsSpellCheckEnabled yazım denetimini devre dışı bırakır bir Keyboard ayarlanmışsa özelliği yoksayılır. Bu nedenle özelliği, açıkça devre dışı bırakılan bir Keyboard için yazım denetimini etkinleştirmek için kullanılamaz.

Metin tahminlerini etkinleştirme ve devre dışı bırakma

özelliği, IsTextPredictionEnabled metin tahmininin ve otomatik metin düzeltmenin etkinleştirilip etkinleştirilmediğini denetler. Varsayılan olarak özelliği olarak trueayarlanır. Kullanıcı metin girerken sözcük tahminleri sunulur.

Ancak kullanıcı adı girme, metin tahmini ve otomatik metin düzeltme gibi bazı metin girişi senaryoları olumsuz bir deneyim sağlar ve özelliği falseolarak ayarlanarak IsTextPredictionEnabled devre dışı bırakılmalıdır:

<Entry ... IsTextPredictionEnabled="false" />

Not

IsTextPredictionEnabled özelliği olarak falseayarlandığında ve özel bir klavye kullanılmadığında, metin tahmini ve otomatik metin düzeltme devre dışı bırakılır. Ancak, metin tahminini devre dışı bırakabilecek bir Keyboard ayarlanmışsa özelliği IsTextPredictionEnabled yoksayılır. Bu nedenle, özelliği açıkça devre dışı bırakır bir Keyboard için metin tahminini etkinleştirmek için kullanılamaz.

Metin girişini engelle

Özelliği trueolarak ayarlanarak kullanıcıların içindeki Entry metni değiştirmesi IsReadOnly engellenebilir:

<Entry Text="User input won't be accepted."
       IsReadOnly="true" />

Not

özelliği, IsReadonly öğesinin görsel görünümünü Entryde gri olarak değiştiren özelliğin aksine IsEnabled bir öğesinin Entry görsel görünümünü değiştirmez.