Xamarin.Forms Giriş
Xamarin.FormsEntry
, tek satırlı metin girişi için kullanılır. Entry
gö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 Entry
sunulan 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 string
ayarlanarak Placeholder
gerçekleştirilir ve genellikle için uygun içerik türünü belirtmek için Entry
kullanılır. Ayrıca, yer tutucu metin rengi özelliği olarak Color
ayarlanarak 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 false
true
engellenebilir:
<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ü Entry
de 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ğeridirTextTransform
.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 Entry
iç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.MaxValue
Entry
olan 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ı
Entry
IsPassword
özelliğini sağlar. olduğunda IsPassword
true
, alanın içeriği siyah daireler olarak gösterilir:
XAML'de:
<Entry IsPassword="true" />
C# dilinde:
var MyEntry = new Entry { IsPassword = true };
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" };
İ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 Entry
başlangıcına eklendiğini gösterir.
Ayrıca, SelectionLength
özelliği içinde metin seçiminin Entry
uzunluğ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çinEntry.ClearButtonVisibility
varsayılan değerdir.WhileEditing
, içinde net bir düğmeninEntry
gö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:
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 birKeyboardFlags
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 true
ayarlanı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 false
olarak ayarlanarak IsSpellCheckEnabled
devre dışı bırakılmalıdır:
<Entry ... IsSpellCheckEnabled="false" />
var entry = new Entry { ... IsSpellCheckEnabled = false };
Not
IsSpellCheckEnabled
özelliği olarak false
ayarlandığında ve özel bir klavye kullanılmadığında, yerel yazım denetleyicisi devre dışı bırakılır. Ancak, gibi Keyboard.Chat
IsSpellCheckEnabled
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 true
ayarlanı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 false
olarak ayarlanarak IsTextPredictionEnabled
devre dışı bırakılmalıdır:
<Entry ... IsTextPredictionEnabled="false" />
var entry = new Entry { ... IsTextPredictionEnabled = false };
Not
IsTextPredictionEnabled
özelliği olarak false
ayarlandığı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;
Yer tutucunun belirtilen TextColor
tarafı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");
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ığı VisualElement
Entry
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 EventArgs
alan 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 Text
Entry
. Olayın işleyicisi bir örneğini TextChangedEventArgs
alır. TextChangedEventArgs
ve NewTextValue
özellikleri aracılığıyla eski ve yeni değerlerine OldTextValue
Entry
Text
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;