This article has been localized into Turkish by the community.
Textblock Kontrolü
TextBlock kontrol sınıfından miras alınmadığı için kendi başına bir kontrol olmamasına rağmen WPF framework te diğer kontroller gibi kullanıldığı için bizde onu basitçe kontrol olarak isimlendireceğiz.
TextBlock kontrolü WPF'deki en temel ve faydalı kontrollerden biridir. Ekrana Label kontrolü gibi metin koymanıza olanak tanır, ancak daha basit ve daha az kaynak gerektirir. Genellemek gerekirse, Label kontrolünü kısa, tek satırlık metinler (fakat görüntü vs. de içerebilir), TextBlock ise çok satırlı metinler (yalnızca metin) için kullanırız. Hem Label hem de TextBlock'un kendine has avantajları vardır, bu nedenle hangisini kullanacağınız duruma bağlıdır.
Merhaba, WPF!" makalesinde bir TextBlock kontrolü kullanmıştık ama şimdilik, en basit haliyle TextBlock'a bir göz atalım:
<Window x:Class="WpfTutorialSamples.Basic_controls.TextBlockSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="TextBlockSample" Height="100" Width="200">
<Grid>
<TextBlock>This is a TextBlock</TextBlock>
</Grid>
</Window>
Daha önceki bölümleri okuyanlar için bu örnek oldukça basit kalacak ve yeni bir şey olmadığını göreceklerdir. TextBlock arasındaki metin, TextBlock'un Text özelliğini ayarlamak için kullanılan kısa yoldur.
Bir sonraki örnek için, TextBlock'un daha uzun bir metinlerle nasıl ilgilendiğini gösterelim. Ayrıca, biraz daha iyi görünmesi için biraz kenar boşluğu da ekledim:
<Window x:Class="WpfTutorialSamples.Basic_controls.TextBlockSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="TextBlockSample" Height="100" Width="200">
<Grid>
<TextBlock Margin="10">This is a TextBlock control and it comes with a very long text</TextBlock>
</Grid>
</Window>
Uzun yazıları kullanmak
Ekran görüntüsünden anlayacağınız gibi, TextBlock uzun, çok satırlı metinleri kullanabiliyor, ancak varsayılan olarak hiçbir şey yapmıyor. Metnin pencerenin içinde işlenemeyecek kadar uzun olduğu durumlarda WPF metnin mümkün olduğunca fazlasını oluşturur ve sonra durur.
Neyse ki, bu yapmanın birkaç yolu var. Bir sonraki örnekte size hepsini göstereceğim ve her birini daha sonra açıklayacağım:
<Window x:Class="WpfTutorialSamples.Basic_controls.TextBlockSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="TextBlockSample" Height="200" Width="250">
<StackPanel>
<TextBlock Margin="10" Foreground="Red">
This is a TextBlock control<LineBreak />
with multiple lines of text.
</TextBlock>
<TextBlock Margin="10" TextTrimming="CharacterEllipsis" Foreground="Green">
This is a TextBlock control with text that may not be rendered completely, which will be indicated with an ellipsis.
</TextBlock>
<TextBlock Margin="10" TextWrapping="Wrap" Foreground="Blue">
This is a TextBlock control with automatically wrapped text, using the TextWrapping property.
</TextBlock>
</StackPanel>
</Window>
Bu nedenle, daha kolay bir genel bakış için her biri farklı renkte (Foreground özelliğini kullanarak) üç TextBlock kontrolümüz var. Hepsi, metin uzunluğunun çözümünü farklı şekillerde ele alır:
Kırmızı TextBlock, satırı belirtilen bir konumda manuel olarak kesmek için bir LineBreak etiketi kullanır. Bu, metnin yeni bir satıra geçmesini istediğiniz yerde tam kontrol sağlar, ancak çoğu durumda çok esnek değildir. Kullanıcı pencereyi büyütürse, tüm metni bir satıra sığdıracak kadar yer olmasına rağmen, metin aynı konumda yine kalır.
Yeşil TextBlock, TextBlock'un metni sığdıramadığında bir üç nokta (...) göstermesini sağlamak için CharacterEllipsis değerine sahip TextTrimming özelliğini kullanır. Bu, daha fazla metin olduğunu göstermenin yaygın bir yoludur, ancak gösterecek kadar yer yok. Çok uzun olabilecek bir metniniz olduğunda, ancak kesinlikle birden fazla satır kullanmak istemiyorsanız bu method harikadır. CharacterEllipsis'e bir alternatif olarak, bir kelimenin yalnızca kısmen gösterilmesini önleyen ,metni mümkün olan en son karakter yerine mümkün olan en son kelimenin sonunda kesen WordEllipsis kullanabilirsiniz.
Mavi TextBlock, TextBlock'un bir önceki satıra daha fazla metin sığamadığında metnin bir sonraki satıra kaydırılmasını sağlamak için, TextWrapping özelliğinin Wrap değerini kullanır. Metnin nerede kayacağını elle tanımladığımız ilk TextBlock uygulamasının aksine, bu tamamen otomatik gerçekleşir. Bu ayrıca TextBlock'un mümkün olduğu kadar az yer kaplamasını otomatik olarak ayarlar. Örnekteki pencereyi daha büyük veya daha küçük yapmayı deneyin; satır kayma duruma göre nasıl güncellendiğini göreceksiniz.
Tüm bunlar, TextBlock'taki basit metinler içindi. Bir sonraki bölümde, TextBlock içinde çeşitli stillerden metinler oluşturmamıza izin veren TextBlock'un daha gelişmiş işlevlerinden bazılarına bakacağız.