Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
TextBox denetimi, kullanıcının uygulamaya metin yazmasına olanak tanır. Genellikle tek bir metin satırını yakalamak için kullanılır, ancak birden çok metin satırını yakalayacak şekilde yapılandırılabilir. Metin ekranda basit, tekdüzen, düz metin biçiminde görüntülenir.
TextBox, metin girişini basitleştirebilecek çeşitli özelliklere sahiptir. Metin kopyalama ve yapıştırma desteğine sahip tanıdık, yerleşik bir bağlam menüsüyle birlikte gelir. "Tümünü temizle" düğmesi, kullanıcının girilen tüm metinleri hızla silmesini sağlar. Ayrıca, varsayılan olarak yerleşik ve etkin yazım denetimi özelliklerine sahiptir.
Doğru kontrol bu mu?
TextBox denetimi kullanarak kullanıcının formda olduğu gibi biçimlendirilmemiş metin girmesine ve düzenlemesine izin verin. TextBox içindeki metni almak ve ayarlamak için Text özelliğini kullanabilirsiniz.
TextBox'ı salt okunur yapabilirsiniz, ancak bu geçici, koşullu bir durum olmalıdır. Metin hiçbir zaman düzenlenemezse, bunun yerine TextBlock kullanmayı göz önünde bulundurun.
Parola veya Sosyal Güvenlik numarası gibi diğer özel verileri toplamak için PasswordBox denetimi kullanın. Parola kutusu, girilen metni yerine madde işaretleri göstererek metin giriş kutusuna benzer.
Kullanıcının arama terimleri girmesine izin vermek veya kullanıcıya yazarken aralarından seçim yapabileceğiniz önerilerin listesini göstermek için AutoSuggestBox denetimi kullanın.
Zengin metin dosyalarını görüntülemek ve düzenlemek için RichEditBox kullanın.
Doğru metin denetimini seçme hakkında daha fazla bilgi için Metin denetimleri makalesine bakın.
Recommendations
- Metin kutusunun amacı açık değilse etiket veya yer tutucu metin kullanın. Metin giriş kutusunun değeri olsun veya olmasın etiket görünür. Yer tutucu metin, metin giriş kutusunun içinde görüntülenir ve bir değer girildikten sonra kaybolur.
- Metin kutusuna girilebilen değer aralığı için uygun bir genişlik verin. Sözcük uzunluğu diller arasında farklılık gösterir, bu nedenle uygulamanızın dünya için hazır olmasını istiyorsanız yerelleştirmeyi hesaba katabilirsiniz.
- Metin giriş kutusu genellikle tek satırdır (
TextWrap = "NoWrap"). Kullanıcıların uzun bir dize girmesi veya düzenlemesi gerektiğinde, metin giriş kutusunu çok satırlı (TextWrap = "Wrap") olarak ayarlayın. - Genellikle, düzenlenebilir metinler için metin giriş kutusu kullanılır. Ancak metin giriş kutusunu salt okunur hale getirerek içeriğinin okunmasını, seçilmesini ve kopyalanmasını sağlayabilirsiniz, ancak düzenlenemez.
- Görünümdeki dağınıklığı azaltmanız gerekiyorsa, bir dizi metin giriş kutusunun yalnızca denetim onay kutusu işaretli olduğunda görünmesini sağlamayı göz önünde bulundurun. Metin giriş kutusunun etkin durumunu onay kutusu gibi bir denetime de bağlayabilirsiniz.
- Metin giriş kutusunun bir değer içerdiğinde ve kullanıcı dokunduğunda nasıl davranmasını istediğinizi düşünün. Varsayılan davranış, değeri değiştirmek yerine düzenlemek için uygundur; ekleme noktası sözcükler arasına yerleştirilir ve hiçbir şey seçilmez. Değiştirme, belirli bir metin giriş kutusu için en yaygın kullanım örneğiyse, denetim odağı aldığında alandaki tüm metni seçebilir ve yazma işlemi seçimin yerini alır.
Tek satırlı giriş kutuları
Çok sayıda küçük metin bilgisi yakalamak için birkaç tek satırlı metin kutusu kullanın. Metin kutuları doğası gereği ilişkiliyse, bunları birlikte gruplandırın.
Tek satırlı metin kutularının boyutunu en uzun beklenen girişten biraz daha geniş hale getirin. Bunu yaptığınızda denetim çok geniş hale geliyorsa, iki denetime ayırın. Örneğin, tek bir adres girişini "Adres satırı 1" ve "Adres satırı 2" olarak bölebilirsiniz.
Girilebilen karakterler için uzunluk üst sınırını ayarlayın. Yedekleme veri kaynağı uzun bir giriş dizesine izin vermiyorsa, girişi sınırlayın ve kullanıcılara sınıra ulaştıklarında bunu bildirmek için bir doğrulama açılır penceresi kullanın.
Kullanıcılardan küçük metin parçaları toplamak için tek satırlı metin girişi denetimlerini kullanın.
Aşağıdaki örnekte, bir güvenlik sorusunun yanıtını yakalamak için tek satırlık bir metin kutusu gösterilmektedir. Yanıtın kısa olması beklenir ve bu nedenle burada tek satırlık bir metin kutusu uygundur.
Belirli bir biçime sahip verileri girmek için kısa, sabit boyutlu, tek satırlı metin girişi denetimleri kümesi kullanın.
Dizeleri girmek veya düzenlemek için tek satırlı, kısıtlanmamış bir metin girişi denetimi kullanın. Bu denetim, kullanıcıların geçerli değerleri seçmesine yardımcı olan bir komut düğmesiyle birlikte kullanılır.
yardımlı veri girişi
Assisted data input
Çok satırlı metin giriş denetimleri
Zengin bir metin kutusu oluşturduğunuzda, stil düğmelerini ekleyin ve bu işlemleri gerçekleştirin.
Uygulamanızın stiliyle tutarlı bir yazı tipi kullanın.
Metin denetiminin yüksekliğini tipik girdileri barındıracak kadar uzun yapın.
Maksimum karakter veya sözcük sayısı olan uzun metin aralıklarını yakalarken düz metin kutusu kullanın ve kullanıcıya sınıra ulaşmadan önce kaç karakter veya sözcük kaldığını göstermek için canlı çalışan bir sayaç sağlayın. Sayacı kendiniz oluşturmanız gerekir; metin kutusunun altına yerleştirin ve kullanıcı her karakteri veya sözcüğü girerken dinamik olarak güncelleştirin.
Kullanıcılar yazarken metin girişi denetimlerinizin yüksekliğinde büyümesine izin vermeyin.
Kullanıcıların yalnızca tek bir satıra ihtiyacı olduğunda çok satırlı metin kutusu kullanmayın.
Düz metin denetimi yeterliyse zengin metin denetimi kullanmayın.
Metin kutusu oluşturma
- Önemli API'ler:TextBox sınıfı, Text özelliği
WinUI 3 Galeri uygulaması çoğu WinUI 3 denetimi, özelliği ve işlevselliğine ilişkin etkileşimli örnekler içerir. Uygulamayı Microsoft Store'dan alın veya GitHub'dan kaynak kodunu alın
Üst bilgi ve yer tutucu metin içeren basit bir metin kutusunun XAML'i aşağıdadır.
<TextBox Width="500" Header="Notes" PlaceholderText="Type your notes here"/>
TextBox textBox = new TextBox();
textBox.Width = 300;
textBox.Header = "Notes";
textBox.PlaceholderText = "Type your notes here";
// Add the TextBox to the visual tree.
rootGrid.Children.Add(textBox);
Bu XAML'den elde edilen metin kutusu aşağıdadır.
Formdaki veri girişi için metin kutusu kullanma
Bir formdaki veri girişini kabul etmek için bir metin kutusu kullanmak ve metin kutusundan tam metin dizesini almak için Text özelliğini kullanmak yaygın bir durumdır. Text özelliğine erişmek için genellikle bir gönder düğmesine tıklama gibi bir olayı kullanırsınız, ancak metin değiştiğinde bir şey yapmanız gerekiyorsa TextChanged veya TextChanging olayını işleyebilirsiniz.
Bu örnekte, metin kutusunun geçerli içeriğinin nasıl alınıp ayarlanacağı gösterilmektedir.
<TextBox name="SampleTextBox" Text="Sample Text"/>
string sampleText = SampleTextBox.Text;
...
SampleTextBox.Text = "Sample text retrieved";
Kullanıcıya metin kutusunun ne için olduğuna ilişkin bir gösterge vermek için metin kutusuna bir Üst Bilgi (veya etiket) ve PlaceholderText (veya filigran) ekleyebilirsiniz. Üst bilginin görünümünü özelleştirmek için Header yerine HeaderTemplate özelliğini ayarlayabilirsiniz. Tasarım bilgileri için bkz.etiketler için yönergeler.
MaxLength özelliğini ayarlayarak kullanıcının yazabileceği karakter sayısını kısıtlayabilirsiniz. Ancak MaxLength, yapıştırılan metnin uzunluğunu kısıtlamaz. Uygulamanız için önemliyse yapıştırılan metni değiştirmek için Yapıştır olayını kullanın.
Metin kutusu, kutuya metin girildiğinde görüntülenen tümünü temizle düğmesini ("X") içerir. Kullanıcı "X" işaretine tıkladığında, metin kutusundaki metin temizlenir. Şuna benziyor.
Tümünü temizle düğmesi yalnızca metin içeren ve odağı olan düzenlenebilir, tek satırlı metin kutuları için gösterilir.
Tümünü temizle düğmesi şu durumların hiçbirinde gösterilmez:
- IsReadOnly true
- AcceptsReturn doğru
- TextWrap, NoWrap'dan farklı bir değere sahiptir
Bu örnekte, metin kutusunun geçerli içeriğinin nasıl alınıp ayarlanacağı gösterilmektedir.
<TextBox name="SampleTextBox" Text="Sample Text"/>
string sampleText = SampleTextBox.Text;
...
SampleTextBox.Text = "Sample text retrieved";
Metin kutusunu salt okunur olarak ayarlama
Metin kutusunu salt okunur yapmak için IsReadOnly özelliğini doğruolarak ayarlayabilirsiniz. Bu özelliği genellikle uygulamanızdaki koşullara göre uygulama kodunuzda değiştirirsiniz. Her zaman salt okunur bir metin gerekiyorsa, bunun yerine textBlock kullanmayı göz önünde bulundurun.
IsReadOnly özelliğini true olarak ayarlayarak TextBox'ı salt okunur yapabilirsiniz. Örneğin, bir kullanıcının yalnızca belirli koşullar altında etkinleştirilmiş açıklamalar girmesi için bir TextBox'unuz olabilir. Koşullar karşılanıncaya kadar TextBox'ın salt okunur olmasını sağlayabilirsiniz. Yalnızca metin görüntülemeniz gerekiyorsa bunun yerine TextBlock veya RichTextBlock kullanmayı göz önünde bulundurun.
Salt okunur metin kutusu, okuma/yazma metin kutusuyla aynı göründüğünden, kullanıcı için kafa karıştırıcı olabilir. Kullanıcı metin seçebilir ve kopyalayabilir. Etkinleştirildi mi
Çok satırlı girişi etkinleştirme
Metin kutusunun metni birden çok satırda görüntüleyip görüntülemediğini denetlemek için kullanabileceğiniz iki özellik vardır. Her iki özelliği de genellikle çok satırlı metin kutusu oluşturacak şekilde ayarlarsınız.
- Metin kutusunun yeni satır veya geri dönüş karakterlerine izin vermesi ve bunları görüntülemesi için AcceptsReturn özelliğini trueolarak ayarlayın.
- Metin kaydırmayı etkinleştirmek için TextWrapping özelliğini Wrapolarak ayarlayın. Bu, metin kutusunun kenarına ulaştığında, satır ayırıcı karakterlerden bağımsız olarak metnin kaydırılmasına neden olur.
Uyarı
TextBox ve RichEditBox, TextWrapping özellikleri için WrapWholeWords değerini desteklemez. WrapWholeWords'u TextBox.TextWrapping veya RichEditBox.TextWrapping için bir değer olarak kullanmayı denerseniz geçersiz bir bağımsız değişken istisnası oluşur.
Çok satırlı metin kutusu, Height veya MaxHeight özelliği ya da üst kapsayıcı tarafından kısıtlanmadığı sürece metin girildikçe dikey olarak büyür. Çok satırlı bir metin kutusunun görünür alanının ötesine geçmediğini test etmeli ve varsa büyümesini kısıtlamalısınız. Çok satırlı metin kutusu için her zaman uygun bir yükseklik belirtmenizi ve kullanıcı yazarken yüksekliğinin artmasına izin vermemenizi öneririz.
Kaydırma tekerleği veya dokunma kullanılarak kaydırma gerektiğinde otomatik olarak etkinleştirilir. Ancak dikey kaydırma çubukları varsayılan olarak görünmez. ScrollViewer.VerticalScrollBarVisibility ayarını Auto olarak değiştirerek ekli ScrollViewer'da dikey kaydırma çubuklarını gösterebilirsiniz, burada gösterildiği gibi.
<TextBox AcceptsReturn="True" TextWrapping="Wrap"
MaxHeight="172" Width="300" Header="Description"
ScrollViewer.VerticalScrollBarVisibility="Auto"/>
TextBox textBox = new TextBox();
textBox.AcceptsReturn = true;
textBox.TextWrapping = TextWrapping.Wrap;
textBox.MaxHeight = 172;
textBox.Width = 300;
textBox.Header = "Description";
ScrollViewer.SetVerticalScrollBarVisibility(textBox, ScrollBarVisibility.Auto);
Metin eklendikten sonra metin kutusu şöyle görünür.
Metin görünümünü biçimlendirme
Metni bir metin kutusu içinde hizalamak için TextAlignment özelliğini kullanın. Metin kutusunu sayfanın düzeni içinde hizalamak için HorizontalAlignment ve VerticalAlignment özelliklerini kullanın.
Metin kutusu yalnızca biçimlendirilmemiş metni desteklese de, metnin markanızla eşleşecek şekilde metin kutusunda nasıl görüntüleneceğini özelleştirebilirsiniz. Metnin görünümünü değiştirmek için FontFamily, FontSize, FontStyle, Arka Plan, Ön Planve CharacterSpacing gibi standart Denetimi özelliklerini ayarlayabilirsiniz. Bu özellikler yalnızca metin kutusunun metni yerel olarak nasıl görüntülediğini etkiler, dolayısıyla metni kopyalayıp zengin bir metin denetimine yapıştırırsanız, örneğin biçimlendirme uygulanmaz.
Bu örnekte, metnin görünümünü özelleştirmek için ayarlanmış çeşitli özelliklere sahip salt okunur bir metin kutusu gösterilmektedir.
<TextBox Text="Sample Text" IsReadOnly="True"
FontFamily="Verdana" FontSize="24"
FontWeight="Bold" FontStyle="Italic"
CharacterSpacing="200" Width="300"
Foreground="Blue" Background="Beige"/>
TextBox textBox = new TextBox();
textBox.Text = "Sample Text";
textBox.IsReadOnly = true;
textBox.FontFamily = new FontFamily("Verdana");
textBox.FontSize = 24;
textBox.FontWeight = Windows.UI.Text.FontWeights.Bold;
textBox.FontStyle = Windows.UI.Text.FontStyle.Italic;
textBox.CharacterSpacing = 200;
textBox.Width = 300;
textBox.Background = new SolidColorBrush(Windows.UI.Colors.Beige);
textBox.Foreground = new SolidColorBrush(Windows.UI.Colors.Blue);
// Add the TextBox to the visual tree.
rootGrid.Children.Add(textBox);
Sonuçta elde edilen metin kutusu şöyle görünür.
Bağlam menüsünü değiştirme
Varsayılan olarak, metin kutusu bağlam menüsünde gösterilen komutlar metin kutusunun durumuna bağlıdır. Örneğin, metin kutusu düzenlenebilir olduğunda aşağıdaki komutlar gösterilebilir.
| Command | Ne zaman gösteriliyor... |
|---|---|
| Kopyala | metin seçilidir. |
| Kesmek | metin seçilidir. |
| Yapıştır | pano metin içerir. |
| Tümünü seç | TextBox metin içerir. |
| Geri alın | metni değiştirildi. |
Bağlam menüsünde gösterilen komutları değiştirmek için ContextMenuOpening olayını işleyebilirsiniz. Bunun bir örneği için, WinUI 2 Galerisiiçindeki RichEditBox'ın CommandBarFlyout'unu özelleştirme - 'Paylaş' seçeneğini ekleme örneğine bakın. Tasarım bilgileri için bkz. bağlam menüleri için yönergeler.
Seçme, kopyalama ve yapıştırma
SelectedText özelliğini kullanarak seçili metni bir metin kutusunda alabilir veya ayarlayabilirsiniz. Metin seçimini işlemek için SelectionStart ve SelectionLength özelliklerini ve Select ve SelectAll yöntemlerini kullanın. Kullanıcı metni seçtiğinde veya seçimini kaldırdığında işlem yapmak için SelectionChanged olayını işleyebilir. SelectionHighlightColor özelliğini ayarlayarak seçili metni vurgulamak için kullanılan rengi değiştirebilirsiniz.
TextBox varsayılan olarak kopyalama ve yapıştırmayı destekler. Uygulamanızdaki düzenlenebilir metin denetimlerinde Yapıştırma olayının özel işlenmesini sağlayabilirsiniz. Örneğin, çok satırlı bir adresi tek satırlı bir arama kutusuna yapıştırmadan önce satır sonlarını kaldırabilirsiniz. Alternatif olarak, yapıştırılan metnin uzunluğunu denetleyebilir ve veritabanına kaydedilebilecek uzunluk üst sınırını aşarsa kullanıcıyı uyarabilirsiniz. Daha fazla bilgi ve örnek için Yapıştırma olayına bakın.
Burada, kullanımda olan bu özelliklere ve yöntemlere bir örnek verilmiştir. İlk metin kutusunda metin seçtiğinizde, seçili metin salt okunur olan ikinci metin kutusunda görüntülenir. SelectionLength ve SelectionStart özelliklerinin değerleri iki metin bloğunda gösterilir. Bu işlem SelectionChanged olayı kullanılarak yapılır.
<StackPanel>
<TextBox x:Name="textBox1" Height="75" Width="300" Margin="10"
Text="The text that is selected in this TextBox will show up in the read only TextBox below."
TextWrapping="Wrap" AcceptsReturn="True"
SelectionChanged="TextBox1_SelectionChanged" />
<TextBox x:Name="textBox2" Height="75" Width="300" Margin="5"
TextWrapping="Wrap" AcceptsReturn="True" IsReadOnly="True"/>
<TextBlock x:Name="label1" HorizontalAlignment="Center"/>
<TextBlock x:Name="label2" HorizontalAlignment="Center"/>
</StackPanel>
private void TextBox1_SelectionChanged(object sender, RoutedEventArgs e)
{
textBox2.Text = textBox1.SelectedText;
label1.Text = "Selection length is " + textBox1.SelectionLength.ToString();
label2.Text = "Selection starts at " + textBox1.SelectionStart.ToString();
}
Bu kodun sonucu aşağıdadır.
Metin kutusunda seçili metni 
Metin denetiminiz için doğru klavyeyi seçin
Kullanıcıların dokunmatik klavyeyi veya Yumuşak Giriş Paneli'ni (SIP) kullanarak veri girmelerine yardımcı olmak için, metin denetiminin giriş kapsamını kullanıcının girmesi beklenen veri türüyle eşleşecek şekilde ayarlayabilirsiniz.
Dokunmatik klavye, uygulamanız dokunmatik ekranlı bir cihazda çalıştığında metin girişi için kullanılabilir. Kullanıcı TextBox veya RichEditBox gibi düzenlenebilir bir giriş alanına dokunduğunda dokunmatik klavye çağrılır. Metin denetiminin giriş kapsamını kullanıcının girmesini beklediğiniz veri türüyle eşleşecek şekilde ayarlayarak kullanıcıların uygulamanıza veri girmesini çok daha hızlı ve daha kolay hale getirebilirsiniz. Giriş kapsamı, sistemin giriş türü için özel bir dokunmatik klavye düzeni sağlayabilmesi için denetim tarafından beklenen metin girişi türü hakkında sisteme bir ipucu sağlar.
Örneğin, metin kutusu yalnızca 4 basamaklı PIN girmek için kullanılıyorsa, InputScope özelliğini Sayıolarak ayarlayın. Bu, sisteme tuş takımı düzenini göstermesini söyler ve bu da kullanıcının PIN'i girmesini kolaylaştırır.
Önemli Giriş kapsamı herhangi bir giriş doğrulamasının gerçekleştirilmesine neden olmaz ve kullanıcının donanım klavyesi veya başka bir giriş cihazı aracılığıyla herhangi bir giriş sağlamasına engel olmaz. Yine de kodunuzdaki girişi gerektiği gibi doğrulamak sizin sorumluluğunuzdadır.
Dokunmatik klavyeyi etkileyen diğer özellikler IsSpellCheckEnabled, IsTextPredictionEnabledve PreventKeyboardDisplayOnProgrammaticFocus. (IsSpellCheckEnabled, donanım klavyesi kullanıldığında TextBox'ı da etkiler.)
Daha fazla bilgi ve örnek için bkz. Dokunmatik klavye ve özellik belgelerini değiştirmek için giriş kapsamını kullanma.
UWP ve WinUI 2
Önemli
Bu makaledeki bilgiler ve örnekler, Windows Uygulama SDK'sı ve WinUI 3kullanan uygulamalar için iyileştirilmiştir, ancak genellikle WinUI 2kullanan UWP uygulamaları için geçerlidir. Platforma özgü bilgiler ve örnekler için UWP API başvurusuna bakın.
Bu bölüm, denetimi bir UWP veya WinUI 2 uygulamasında kullanmak için ihtiyacınız olan bilgileri içerir.
Bu denetimin API'leri Windows.UI.Xaml.Controls ad alanında bulunur.
- UWP API'leri :TextBox sınıfıve Text özelliği
- WinUI 2 Galeri uygulamasını açın veTextBox'ı çalışır durumda olarak görün. WinUI 2 Galeri uygulaması çoğu WinUI 2 denetimi, özelliği ve işlevselliğine ilişkin etkileşimli örnekler içerir. Uygulamayı Microsoft Store'dan alın veya GitHub'dan kaynak kodunu alın.
Tüm denetimler için en güncel stilleri ve şablonları almak için en son WinUI 2'yi kullanmanızı öneririz. WinUI 2.2 veya üzeri, bu denetim için yuvarlatılmış köşeler kullanan yeni bir şablon içerir. Daha fazla bilgi için bkz . Köşe yarıçapı.
İlgili makaleler
- Metin denetimleri
- Yazım denetimi yönergeleri
- Arama ekleyin
- metin girişi için Yönergeleri
- TextBox sınıfı
- PasswordBox sınıfı
- String.Length özelliği
Windows developer