Xamarin.Forms Giriş
, Xamarin.FormsEntry tek satırlı metin girişi için kullanılır. görünümü Entry gibi , birden çok klavye türlerini Editor destekler. Ayrıca, Entry bir parola alanı olarak kullanılabilir.
Metin ayarlama ve okuma
, diğer metin sunum görünümlerine benzer Entry şekilde, Xamarin_Forms Entry _InputView_Text" data-linktype="absolute-path">Text özelliğini gösterir. Bu özellik tarafından sunulan metni ayarlamak ve okumak için Entry kullanılabilir. Aşağıdaki örnek, Text XAML'de özelliğinin ayar olduğunu gösteriyor:
<Entry x:Name="entry" Text="I am an Entry" />
C# içinde:
var entry = new Entry { Text = "I am an Entry" };
Metin okumak için Text C# ile özelliğine erişin:
var text = entry.Text;
Yer tutucu metni ayarlama
Entry, kullanıcı girişini depolamazken yer tutucu metnini gösterecek şekilde ayarlanmış olabilir. Bu, Xamarin_Forms _InputView_Placeholder" data-linktype="absolute-path">özelliğini olarak ayarerek kullanılmaktadır ve genellikle için uygun olan içerik türünü belirtmek için PlaceholderstringEntry kullanılır. Ayrıca yer tutucu metin rengi, Xamarin_Forms _InputView_PlaceholderColor" data-linktype="absolute-path">özelliği olarak ayar >PlaceholderColor denetlenerek Color denetlenebilirsiniz:
<Entry Placeholder="Username" PlaceholderColor="Olive" />
var entry = new Entry { Placeholder = "Username", PlaceholderColor = Color.Olive };
Not
bir Entry genişliği, özelliği ayarlandığı şekilde WidthRequest tanımlanabilir. Özelliğinin değerine bağlı Entry olarak tanımlanan bir değerinin genişliğine bağımlı Text değildir.
Metin girişini engelleme
Varsayılan değeri olan özelliği olarak ayarlanarak kullanıcıların bir içinde EntryIsReadOnly metni değiştirmesi falsetrue 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, görsel görünümünü de gri olarak değiştiren IsReadonlyEntryIsEnabled özelliğin aksine, bir 'nin görsel görünümünü Entry değiştirmez.
Metin dönüştürme
, özelliğini sabit sabit değerini ayarlayan özelliğinde depolanan metninin büyük/küçük EntryTextTextTransformTextTransform yazısını dönüştürebilirsiniz. Bu numaralama dört değere sahiptir:
Nonemetnin dönüştürülene bir şey olmadığını gösterir.Defaultplatform için varsayılan davranışın kullan olacağını gösterir. Bu, özelliğin varsayılanTextTransformdeğeridir.Lowercasemetnin küçük harfe dönüştürülecek olduğunu gösterir.Uppercasemetnin büyük harfe dönüştürülecek olduğunu gösterir.
Aşağıdaki örnekte, metnin büyük harfe dönüştürülmesi gösterir:
<Entry Text="This text will be displayed in uppercase."
TextTransform="Uppercase" />
Eşdeğer C# kodu şöyledir:
Entry entry = new Entry
{
Text = "This text will be displayed in uppercase.",
TextTransform = TextTransform.Uppercase
};
Giriş uzunluğunu sınırlama
Xamarin_Forms _InputView_MaxLength" data-linktype="absolute-path">özelliği, için izin verilen giriş uzunluğunu sınırlamak MaxLength için Entry kullanılabilir. Bu özellik pozitif tamsayıya ayar olmalıdır:
<Entry ... MaxLength="10" />
var entry = new Entry { ... MaxLength = 10 };
Xamarin_Forms _InputView_MaxLength" data-linktype="absolute-path">özellik değeri, hiçbir girişe izin verilmiyor olduğunu ve bir için varsayılan değer olan MaxLengthint.MaxValue değerinin girilebilir karakter sayısı üzerinde etkili bir sınır olmadığını Entry gösterir.
Karakter aralığı
Özelliği bir değere Entry ayarerek karakter aralığı Entry.CharacterSpacing bire double uygulanabilir:
<Entry ...
CharacterSpacing="10" />
Eşdeğer C# kodu şöyledir:
Entry entry = new Entry { CharacterSpacing = 10 };
Sonuç olarak, tarafından görüntülenen metindeki karakterler Entry cihazdan bağımsız CharacterSpacing birimler birbirinden ayrı olur.
Not
Özellik CharacterSpacing değeri, ve özellikleri tarafından görüntülenen Text metne Placeholder uygulanır.
Parola alanları
Entry özelliğini IsPassword sağlar. IsPasswordolduğunda, true alanın içeriği siyah daireler olarak sunulacaktır:
XAML'de:
<Entry IsPassword="true" />
C# içinde:
var MyEntry = new Entry { IsPassword = true };

Yer tutucular, parola alanı Entry olarak yapılandırılmış örnekleriyle birlikte kullanılabilir:
XAML'de:
<Entry IsPassword="true" Placeholder="Password" />
C# içinde:
var MyEntry = new Entry { IsPassword = true, Placeholder = "Password" };

İmleç konumunu ve metin seçimi uzunluğunu ayarlama
Xamarin_Forms _Entry_CursorPosition" data-linktype="absolute-path">özelliği, bir sonraki karakterin CursorPosition Xamarin_Forms CursorPosition _InputView_Text" data-linktype="absolute-path">Text özelliğinde depolandığı dizeye eklenecek konumu ayarlamak için kullanılabilir:
<Entry Text="Cursor position set" CursorPosition="5" />
var entry = new Entry { Text = "Cursor position set", CursorPosition = 5 };
Xamarin_Forms _Entry_CursorPosition" data-linktype="absolute-path">özelliğinin varsayılan değeri CursorPosition 0'dır ve metnin başlangıcına ek olacağını Entry gösterir.
Buna ek olarak, Xamarin_Forms _Entry_SelectionLength" data-linktype="absolute-path">özelliği, içinde metin seçiminin uzunluğunu dönmek veya ayarlamak SelectionLength için Entry 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 };
Xamarin_Forms _Entry_SelectionLength" data-linktype="absolute-path">özelliğinin varsayılan değeri SelectionLength 0'dır ve bu değer hiçbir metin seçilmemiş olduğunu gösterir.
Net bir düğme görüntüleme
özelliği, kullanıcının metni temizlemesini sağlayan bir açık düğme ClearButtonVisibilityEntry görüntüp görüntülemeyip görüntülemey denetlemesi için kullanılabilir. Bu özellik bir ClearButtonVisibility numaralama üyesine ayar gerekir:
Never, net bir düğmenin hiçbir zaman görüntülenmez olduğunu gösterir. Bu özellik için varsayılanEntry.ClearButtonVisibilitydeğerdir.WhileEditing, odak ve metin varken içinde birEntryaçık düğmenin görüntü olacağını belirtir.
Aşağıdaki örnek XAML'de özelliğinin ayar olduğunu gösterir:
<Entry Text="Xamarin.Forms"
ClearButtonVisibility="WhileEditing" />
Eşdeğer C# kodu şöyledir:
var entry = new Entry { Text = "Xamarin.Forms", ClearButtonVisibility = ClearButtonVisibility.WhileEditing };
Aşağıdaki ekran görüntüde net Entry düğmesi etkinleştirilmiş bir gösterilebilir:

Klavyeyi özelleştirme
Kullanıcılar bir ile etkileşim kurduğunda sunulan Entry klavye, Xamarin_Forms Entry _InputView_Keyboard" data-linktype="absolute-path">özelliği aracılığıyla, sınıftan aşağıdaki özelliklerden biri ile program aracılığıyla KeyboardKeyboard ayarlanır:
- _Keyboard_Chat" data-linktype="absolute-path">: emojinin yararlı olduğu metinler ve
Chatyerler için kullanılır. - Xamarin_Forms _Keyboard_Default" data-linktype="absolute-path">
Default- varsayılan klavye. - Xamarin_Forms _Keyboard_Email" data-linktype="absolute-path">:
Emaile-posta adresleri giriken kullanılır. - Xamarin_Forms _Keyboard_Numeric" data-linktype="absolute-path">:
Numericsayılar giriken kullanılır. - Xamarin_Forms _Keyboard_Plain" data-linktype="absolute-path">: herhangi bir metin
PlaingirilmezkenKeyboardFlagskullanılır. - Xamarin_Forms _Keyboard_Telephone"data-linktype="absolute-path">: telefon
Telephonenumaraları giriken kullanılır. - Xamarin_Forms _Keyboard_Text" data-linktype="absolute-path">: metin
Textgiriken kullanılır. - Xamarin_Forms _Keyboard_Url" data-linktype="absolute-path">: dosya yolları web adreslerini girmek
Url& için kullanılır.
Bu, XAML'de aşağıdaki gibi gerçeklenebilir:
<Entry Keyboard="Chat" />
Eşdeğer C# kodu şöyledir:
var entry = new Entry { Keyboard = Keyboard.Chat };
Her klavyenin örnekleri Tarifler depomuzda bulunabilir.
sınıfı ayrıca büyük harf, yazım denetimi ve öneri davranışı belirterek klavyeyi özelleştirmek için kullanılan KeyboardCreate bir fabrika yöntemine sahiptir. KeyboardFlags numaralama değerleri yöntemine bağımsız değişkenler olarak belirtilir ve özelleştirilmiş bir Keyboard döndürülür. Numaralama KeyboardFlags aşağıdaki değerleri içerir:
- Xamarin_Forms _KeyboardFlags_None" data-linktype="absolute-path">
None– klavyeye hiçbir özellik eklenmez. - Xamarin_Forms _KeyboardFlags_CapitalizeSentence" data-linktype="absolute-path">– girilen her cümlenin ilk sözcüğün ilk harfinin otomatik olarak büyük
CapitalizeSentenceharfe yaz olacağını gösterir. - Xamarin_Forms _KeyboardFlags_Spellcheck" data-linktype="absolute-path">– girilen metinde
Spellcheckyazım denetimi gerçekleştirilecek olduğunu gösterir. - Xamarin_Forms _KeyboardFlags_Suggestions" data-linktype="absolute-path">– girilen metinde sözcük tamamlamalarının
Suggestionssun sun olacağını gösterir. - Xamarin_Forms _KeyboardFlags_CapitalizeWord" data-linktype="absolute-path">– her sözcüğün ilk harfinin otomatik olarak büyük
CapitalizeWordharfe yaz olacağını gösterir. - Xamarin_Forms _KeyboardFlags_CapitalizeCharacter" data-linktype="absolute-path">– her karakterin otomatik olarak büyük
CapitalizeCharacterharfe yaz olacağını gösterir. - Xamarin_Forms _KeyboardFlags_CapitalizeNone" data-linktype="absolute-path">– otomatik büyük harfle yazma
CapitalizeNonegerçekleşmez. - Xamarin_Forms _KeyboardFlags_All" data-linktype="absolute-path">– girilen metinde yazım denetimi, sözcük tamamlamaları ve cümle büyük harfle
Allyazmanın meydana gelir.
Aşağıdaki XAML kod örneğinde, sözcük tamamlamaları sunmak ve girilen her karakteri büyük harfle ifade etmek için Keyboard varsayılan değerin nasıl özelleştirilebileceğinizi gösterir:
<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 şöyledir:
var entry = new Entry { Placeholder = "Enter text here" };
entry.Keyboard = Keyboard.Create(KeyboardFlags.Suggestions | KeyboardFlags.CapitalizeCharacter);
Dönüş anahtarını özelleştirme
Odak noktası olduğunda görüntülenen yumuşak klavyede dönüş anahtarının Entry görünümü, Xamarin_Forms Entry _Entry_ReturnType" data-linktype="absolute-path">özelliğinin bir numaralama değerine ayarlanarak ReturnTypeReturnType özelleştirilebilir:
- _ReturnType_Default" data-linktype="absolute-path">– belirli bir dönüş anahtarı gerekli olmadığını ve platformun varsayılan olarak
Defaultkullanılamayacaklarını gösterir. - Xamarin_Forms _ReturnType_Done" data-linktype="absolute-path">
Done– "Bitti" dönüş anahtarını gösterir. - Xamarin_Forms _ReturnType_Go" data-linktype="absolute-path">
Go– "Go" dönüş anahtarını gösterir. - Xamarin_Forms _ReturnType_Next "Data-LinkType =" Absolute-path ">
Next– bir" Next "Return tuşunu belirtir. - Xamarin_Forms _ReturnType_Search "Data-LinkType =" Absolute-path ">
Search– bir" Search "dönüş anahtarını gösterir. - Xamarin_Forms _ReturnType_Send "Data-LinkType =" Absolute-path ">
Send– bir" send "Return tuşu olduğunu gösterir.
Aşağıdaki XAML örneğinde, dönüş anahtarının nasıl ayarlanacağı gösterilmektedir:
<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. İOS 'ta, dönüş anahtarı metin tabanlı bir düğmedir. ancak, Android ve Universal Windows platformlarında, return tuşu simge tabanlı bir düğmedir.
Return tuşuna basıldığında Completed olay ateşlenir ve ICommand Xamarin_Forms tarafından belirtilen Completed _Entry_ReturnCommand "Data-LinkType =" absolute-path ">ReturnCommand özelliği yürütülür. Ayrıca, object Xamarin_Forms tarafından belirtilen object _Entry_ReturnCommandParameter "Data-LinkType =" Absolute-path ">ReturnCommandParameter özelliği ICommand parametresi olarak öğesine geçirilir. Komutlar hakkında daha fazla bilgi için bkz. komut arabirimi.
Yazım denetimini etkinleştirme ve devre dışı bırakma
Xamarin_Forms _InputView_IsSpellCheckEnabled "Data-LinkType =" Absolute-path ">IsSpellCheckEnabled özelliği yazım denetiminin etkinleştirilip etkinleştirilmediğini denetler. Varsayılan olarak, özelliği olarak ayarlanır true . Kullanıcı metin girerken, yanlış yazımları belirtilir.
Ancak, Kullanıcı adı girme gibi bazı metin girişi senaryolarında, yazım denetimi negatif bir deneyim sağlar ve Xamarin_Forms _InputView_IsSpellCheckEnabled "Data-LinkType =" Absolute-path ">IsSpellCheckEnabled özelliği olarak ayarlanarak devre dışı bırakılmalıdır false :
<Entry ... IsSpellCheckEnabled="false" />
var entry = new Entry { ... IsSpellCheckEnabled = false };
Not
Xamarin_Forms _InputView_IsSpellCheckEnabled "Data-LinkType =" Absolute-path ">IsSpellCheckEnabled özelliği olarak ayarlandığında false ve özel bir klavye kullanılmıyorsa, yerel yazım denetleyicisi devre dışı bırakılır. Ancak, Keyboard Xamarin_Forms Keyboard _Keyboard_Chat "Data-LinkType =" Absolute-path ">gibi yazım denetimini devre dışı bırakan bir ayarlandıysa Keyboard.Chat , IsSpellCheckEnabled özelliği yok sayılır. Bu nedenle, özelliği Keyboard açıkça devre dışı bırakan bir için yazım denetimini etkinleştirmek üzere kullanılamaz.
Metin tahminini etkinleştirme ve devre dışı bırakma
Xamarin_Forms _Entry_IsTextPredictionEnabled "Data-LinkType =" Absolute-path ">IsTextPredictionEnabled özelliği, metin tahmini ve otomatik metin düzeltmesinin etkinleştirilip etkinleştirilmediğini denetler. Varsayılan olarak, özelliği olarak ayarlanır true . Kullanıcı metin girdiğinde, sözcük tahminleri sunulur.
Ancak, bir Kullanıcı adı girme gibi bazı metin girişi senaryolarında, metin tahmini ve otomatik metin düzeltme bir negatif deneyim sağlar ve Xamarin_Forms _Entry_IsTextPredictionEnabled "Data-LinkType =" Absolute-path ">IsTextPredictionEnabled özelliği olarak ayarlanarak devre dışı bırakılmalıdır false :
<Entry ... IsTextPredictionEnabled="false" />
var entry = new Entry { ... IsTextPredictionEnabled = false };
Not
Xamarin_Forms _Entry_IsTextPredictionEnabled "Data-LinkType =" Absolute-path ">IsTextPredictionEnabled özelliği olarak ayarlandığında false ve özel bir klavye kullanılmazsa, metin tahmini ve otomatik metin düzeltme devre dışı bırakılır. Ancak, Keyboard metin tahminini devre dışı bırakan bir ayarlandıysa, IsTextPredictionEnabled özelliği yok sayılır. Bu nedenle, özelliği Keyboard açıkça devre dışı bırakan bir için metin tahminini etkinleştirmek üzere kullanılamaz.
Renkler
Giriş, aşağıdaki bağlanabilir özellikler aracılığıyla özel bir arka plan ve metin renkleri kullanmak üzere 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 dikkatli olmanız gerekir. Her platformda metin ve arka plan renkleri için farklı varsayılanlar bulunduğundan, genellikle bir tane ayarlarsanız, her ikisini de ayarlamanız gerekir.
Bir girdinin 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 tarafından etkilenmediğini unutmayın TextColor .
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 metnin hiçbirini gizlediğinizden emin olun.
Olaylar ve etkileşim
Giriş iki olay ortaya çıkarır:
TextChanged– metin girişte değiştiğinde harekete geçirilir. Değişiklikten önce ve sonra metin sağlar.Completed– Kullanıcı klavyede Return tuşuna basarak girişi sonlandırmışsa tetiklenir.
Not
VisualElementEntry Devralınan ve olayları da olan sınıf FocusedUnfocused .
Tamamlandı
CompletedOlay, bir etkileşimi bir girişle tamamlamaya tepki vermek için kullanılır. Completed Kullanıcı klavyede Return tuşuna basarak (veya UWP üzerindeki sekme tuşuna basarak) girişi bir alanla bitiyorsa tetiklenir. Olay işleyicisi, göndereni alan ve bir genel olay işleyicisidir EventArgs :
void Entry_Completed (object sender, EventArgs e)
{
var text = ((Entry)sender).Text; //cast sender to access the properties of the Entry
}
Tamamlanan olay XAML 'e abone olabilir:
<Entry Completed="Entry_Completed" />
ve C#:
var entry = new Entry ();
entry.Completed += Entry_Completed;
Olay tetiklendikten sonra, CompletedICommand Xamarin_Forms tarafından belirtilen Completed _Entry_ReturnCommand "Data-LinkType =" absolute-path ">ReturnCommand özelliği yürütülür ve object Xamarin_Forms ICommand _Entry_ReturnCommandParameter" data-LinkType = "Absolute-path" >ReturnCommandParameter özelliği geçirilir ICommand .
TextChanged olayını
TextChangedOlay, bir alanın içeriğindeki bir değişikliğe tepki vermek için kullanılır.
TextChanged her değişiklikten sonra oluşturulur TextEntry . Olay işleyicisi bir örneğini alır TextChangedEventArgs . TextChangedEventArgsEntryTextOldTextValue ve özellikleri yoluyla, eski ve yeni değerlerine erişim sağlar NewTextValue :
void Entry_TextChanged (object sender, TextChangedEventArgs e)
{
var oldText = e.OldTextValue;
var newText = e.NewTextValue;
}
TextChangedOlay xaml 'de abone olabilir:
<Entry TextChanged="Entry_TextChanged" />
ve C#:
var entry = new Entry ();
entry.TextChanged += Entry_TextChanged;
Örneği indirme