TOC

This article has been localized into Turkish by the community.

Kontrol Kavramları:

WPF' Yazı Yayınlamak

Bu makalede neden WPF'de yazılar bazen daha bulanık gösteriliyor, bu daha sonra nasıl düzeltildi ve yazı gösterimini kendiniz nasıl kontrol edersiniz konularını irdeleyeceğiz.

Bu öğreticide daha önce bahsettiğimiz üzere WPF diğer UI framework'lara göre çok daha fazla şeyi kendisi yapar, mesela WinForms yapısı bir çok şey için Windows API kullanır. Bu yazıların gösterilmesine gelince de aynı - WinForms mesela Windows GDI API kullanarak bunu yaparken WPF kendine özel yazı yayınlama yapısına sahiptir, bunun amacı WPF'nin uygulamanın çalıştığı cihazdan bağımsız daha iyi animasyon desteği sağlamasıdır.

Ne yazık ki bu bazen , özellikle küçük boyutlarda yazıların biraz bulanık görünmesine sebep oldu. Bu WPF programcıları için bazı uygulamalarda büyük problem oldu, şükür ki Microsoft .NET framework version 4.0 'da WPF'nin yazı yayınlama motorunda bir çok geliştirme yaptı. Yani bu versiyon ve daha sonrasını kullanıyorsanız yazılarınız mükemmele yakın güzellikte gösterilecektir.

Yazı gösterimini kontrol etmek

Microsoft .NET framework version 4.0 ile ayrıca TextOptions sınıfını TextFormattingMode ve TextRenderingMode özellikleri ile sunarak yazılımcılara yazıların gösterimini daha fazla kontrol edebilme imkanı verdi. Bu sayede yazıların nasıl şekillendirileceği ve gösterileceğini kontroller seviyesinde ayarlama imkanınız oldu. Bu en iyisi bir örnekle anlatılabilir, o yüzden aşağıdaki kod ve ekran görüntülerine bakarak yazı gösterimini bu özelliklerle nasıl etkileyebileceğinizi görün.

TextFormattingMode özelliği

TextFormattingMode özelliği ile yazı şekillendirmesinin hangi algoritmayla yapılacağına karar verirsiniz. Ideal (default değer) ve Display seçenekleriniz var. Bir çok durumda Ideal ayarı en uygun olacağından bu seçeneği ellemeden geçebilirsiniz, fakat çok küçük yazılar gösterirken Display seçeneği bazen daha iyi sonuç verecektir. Şu örnekte farkı görebilirsiniz (çok ince bir fark olmasına rağmen) :

<Window x:Class="WpfTutorialSamples.Control_concepts.TextFormattingModeSample"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="TextFormattingModeSample" Height="200" Width="400">
    <StackPanel Margin="10">
        <Label TextOptions.TextFormattingMode="Ideal" FontSize="9">TextFormattingMode.Ideal, small text</Label>
        <Label TextOptions.TextFormattingMode="Display" FontSize="9">TextFormattingMode.Display, small text</Label>
        <Label TextOptions.TextFormattingMode="Ideal" FontSize="20">TextFormattingMode.Ideal, large text</Label>
        <Label TextOptions.TextFormattingMode="Display" FontSize="20">TextFormattingMode.Display, large text</Label>
    </StackPanel>
</Window>

TextRenderingMode özelliği

TextRenderingMode özelliği yazı gösterilirken hangi kenar yumuşatma tekniğinin kullanılacağını belirleme imkanı verir. Aşağıda örnekte göreceğimiz gibi TextFormattingMode özelliğinde Display değeri verilerek yapıldığında en iyi sonucu verir :

<Window x:Class="WpfTutorialSamples.Control_concepts.TextRenderingModeSample"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="TextRenderingModeSample" Height="300" Width="400">
    <StackPanel Margin="10" TextOptions.TextFormattingMode="Display">
        <Label TextOptions.TextRenderingMode="Auto" FontSize="9">TextRenderingMode.Auto, small text</Label>
        <Label TextOptions.TextRenderingMode="Aliased" FontSize="9">TextRenderingMode.Aliased, small text</Label>
        <Label TextOptions.TextRenderingMode="ClearType" FontSize="9">TextRenderingMode.ClearType, small text</Label>
        <Label TextOptions.TextRenderingMode="Grayscale" FontSize="9">TextRenderingMode.Grayscale, small text</Label>
        <Label TextOptions.TextRenderingMode="Auto" FontSize="18">TextRenderingMode.Auto, large text</Label>
        <Label TextOptions.TextRenderingMode="Aliased" FontSize="18">TextRenderingMode.Aliased, large text</Label>
        <Label TextOptions.TextRenderingMode="ClearType" FontSize="18">TextRenderingMode.ClearType, large text</Label>
        <Label TextOptions.TextRenderingMode="Grayscale" FontSize="18">TextRenderingMode.Grayscale, large text</Label>
    </StackPanel>
</Window>

Gördüğünüz üzere sonuç yazı gösterimleri biraz değişiyor ve bir daha belirtelim duruma özel seçim yapmanız gerekiyor.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!