Xamarin.Forms Giriş

Örneği İndir Örneği indirme

, 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:

  • None metnin dönüştürülene bir şey olmadığını gösterir.
  • Default platform için varsayılan davranışın kullan olacağını gösterir. Bu, özelliğin varsayılan TextTransform değeridir.
  • Lowercase metnin küçük harfe dönüştürülecek olduğunu gösterir.
  • Uppercase metnin 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 };

Giriş IsPassword Örneği

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" };

Giriş IsPassword ve Yer Tutucu Örneği

İ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ılan Entry.ClearButtonVisibility değerdir.
  • WhileEditing , odak ve metin varken içinde bir Entry açı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:

iOS ve Android'de net bir düğmeyle giriş ekran görüntüsü

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:

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:

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:

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;

Giriş TextColor örneği

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");

Giriş BackgroundColor örneği

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;