Aracılığıyla paylaş


Xamarin.Forms Giriş

Xamarin.FormsEntry, tek satırlı metin girişi için kullanılır. Entrygörünümü gibiEditor, birden çok klavye türünü destekler. Ayrıca, Entry parola alanı olarak da kullanılabilir.

Metin ayarlama ve okuma

Entry, diğer metin sunum görünümleri gibi özelliğini kullanıma sunarText. Bu özellik, tarafından Entrysunulan metni ayarlamak ve okumak için kullanılabilir. Aşağıdaki örnekte XAML'de özelliğin Text ayarlanması gösterilmektedir:

<Entry x:Name="entry" Text="I am an Entry" />

C# dilinde:

var entry = new Entry { Text = "I am an Entry" };

Metni okumak için C# dilinde özelliğine erişin Text :

var text = entry.Text;

Yer tutucu metni ayarlama

Entry, kullanıcı girişini depolamadığında yer tutucu metni gösterecek şekilde ayarlanabilir. Bu, özelliği olarak stringayarlanarak Placeholder gerçekleştirilir ve genellikle için uygun içerik türünü belirtmek için Entrykullanılır. Ayrıca, yer tutucu metin rengi özelliği olarak Colorayarlanarak PlaceholderColor denetlenebilir:

<Entry Placeholder="Username" PlaceholderColor="Olive" />
var entry = new Entry { Placeholder = "Username", PlaceholderColor = Color.Olive };

Not

bir öğesinin Entry genişliği, özelliği ayarlanarak WidthRequest tanımlanabilir. Bir varlığın Entry genişliğine, özelliğinin değerine bağlı olarak bağımlı olmayın Text .

Metin girişini engelle

Varsayılan değeri olan özelliği olarak ayarlanarak IsReadOnly kullanıcıların bir Entry içindeki metni değiştirmesi falsetrueengellenebilir:

<Entry Text="This is a read-only Entry"
       IsReadOnly="true" />
var entry = new Entry { Text = "This is a read-only Entry", 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.

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

Eşdeğer C# kodu:

Entry entry = new Entry
{
    Text = "This text will be displayed in uppercase.",
    TextTransform = TextTransform.Uppercase
};

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" />
var entry = new 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.

Karakter aralığı

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

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

Eşdeğer C# kodu:

Entry entry = new 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.

Parola alanları

EntryIsPassword özelliğini sağlar. olduğunda IsPasswordtrue, alanın içeriği siyah daireler olarak gösterilir:

XAML'de:

<Entry IsPassword="true" />

C# dilinde:

var MyEntry = new Entry { IsPassword = true };

IsPassword Girişi Örneği

Yer tutucular, parola alanı olarak yapılandırılan örnekleriyle Entry kullanılabilir:

XAML'de:

<Entry IsPassword="true" Placeholder="Password" />

C# dilinde:

var MyEntry = new Entry { IsPassword = true, Placeholder = "Password" };

IsPassword girdisi ve Yer Tutucu Örneği

İ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" />
var entry = new 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" />
var entry = new 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 Entry.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 XAML'de özelliğin ayarlanması gösterilmektedir:

<Entry Text="Xamarin.Forms"
       ClearButtonVisibility="WhileEditing" />

Eşdeğer C# kodu:

var entry = new Entry { Text = "Xamarin.Forms", ClearButtonVisibility = ClearButtonVisibility.WhileEditing };

Aşağıdaki ekran görüntüleri, temizle düğmesinin etkin olduğu bir Entry öğesini gösterir:

iOS ve Android'de, açık düğmeli bir Girişin ekran görüntüsü

Klavyeyi özelleştirme

Kullanıcılar ile Entry etkileşim kurduğunda sunulan klavye, ö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.

Bu, XAML'de aşağıdaki gibi gerçekleştirilebilir:

<Entry Keyboard="Chat" />

Eşdeğer C# kodu:

var entry = new Entry { Keyboard = Keyboard.Chat };

Her klavyenin örnekleri Yemek Tarifleri depomuzda bulunabilir.

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:

var 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 yumuşak klavyede 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" />

Eşdeğer C# kodu:

var entry = new Entry { ReturnType = 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 Evrensel Windows Platformu'lerde dönüş tuşu simge tabanlı bir düğmedir.

Dönüş tuşuna basıldığında olay Completed tetikler ve özelliği tarafından ReturnCommand belirtilen herhangi biri 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 Arabirimi.

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" />
var entry = new 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" />
var entry = new 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.

Renkler

Giriş, aşağıdaki bağlanabilir özellikler aracılığıyla özel bir arka plan ve metin renkleri kullanacak şekilde ayarlanabilir:

  • TextColor : Metnin rengini ayarlar.
  • BackgroundColor : Metnin arkasında gösterilen rengi ayarlar.

Renklerin her platformda kullanılabilir olmasını sağlamak için özel bakım gereklidir. Her platformun metin ve arka plan renkleri için farklı varsayılan değerleri olduğundan, genellikle her ikisini de ayarlarsanız ayarlamanız gerekir.

Bir girişin metin rengini ayarlamak için aşağıdaki kodu kullanın:

XAML'de:

<Entry TextColor="Green" />

C# dilinde:

var entry = new Entry();
entry.TextColor = Color.Green;

TextColor Girişi Örneği

Yer tutucunun belirtilen TextColortarafından etkilenmediğini unutmayın.

XAML'de arka plan rengini ayarlamak için:

<Entry BackgroundColor="#2c3e50" />

C# dilinde:

var entry = new Entry();
entry.BackgroundColor = Color.FromHex("#2c3e50");

Giriş BackgroundColor Örneği

Seçtiğiniz arka plan ve metin renklerinin her platformda kullanılabilir olduğundan ve yer tutucu metinleri gizlemediğinden emin olun.

Olaylar ve etkileşim

Girdi iki olayı kullanıma sunar:

  • TextChanged – metin girdide değiştiğinde oluşturulur. Değişiklik öncesinde ve sonrasındaki metni sağlar.
  • Completed – Kullanıcı klavyedeki dönüş tuşuna basarak girişi sonlandırdığında oluşturulur.

Not

Devralındığı VisualElementEntry sınıfın da ve Unfocused olayları vardırFocused.

Tamamlandı

Olay Completed , bir Giriş ile etkileşimin tamamlanmasına tepki vermek için kullanılır. Completed , kullanıcı klavyedeki dönüş tuşuna basarak (veya UWP'de Sekme tuşuna basarak) bir alanla girişi sonlandırdığında oluşturulur. Olayın işleyicisi, göndereni ve EventArgsalan genel bir olay işleyicisidir:

void Entry_Completed (object sender, EventArgs e)
{
    var text = ((Entry)sender).Text; //cast sender to access the properties of the Entry
}

Tamamlanan olaya XAML'de abone olunabilir:

<Entry Completed="Entry_Completed" />

ve C#:

var entry = new Entry ();
entry.Completed += Entry_Completed;

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çirilirICommand.

TextChanged

Olay TextChanged , bir alanın içeriğindeki değişikliğe tepki vermek için kullanılır.

TextChanged her değişiklik olduğunda oluşturulur TextEntry . Olayın işleyicisi bir örneğini TextChangedEventArgsalır. TextChangedEventArgsve NewTextValue özellikleri aracılığıyla eski ve yeni değerlerine OldTextValueEntryText erişim sağlar:

void Entry_TextChanged (object sender, TextChangedEventArgs e)
{
    var oldText = e.OldTextValue;
    var newText = e.NewTextValue;
}

Olaya TextChanged XAML'de abone olunabilir:

<Entry TextChanged="Entry_TextChanged" />

ve C#:

var entry = new Entry ();
entry.TextChanged += Entry_TextChanged;