Как предотвратить пикселизацию текста при использовании RenderTransform? - PullRequest
6 голосов
/ 01 мая 2011

Когда я использую свойство RenderTransform и увеличиваю RichTextBox, я получаю увеличенный текст в пикселях (квадратные края текста).

Как я могу предотвратить это? enter image description here

EDIT:

У меня есть TextOptions.TextFormattingMode = "Display" - когда я удаляю эту опцию, все в порядке!

Ответы [ 2 ]

2 голосов
/ 02 мая 2011

Не могу утверждать, что я могу воспроизвести это с моими текущими настройками:

enter image description here

Это со шкалой 20. Я думаю, это может зависеть от настроек системы ClearType,Вы можете попробовать установить RenderOptions.ClearTypeHint="Enabled" на RichTextbox, что может привести к его применению.

Также попробуйте установить TextOptions.TextRenderingMode="ClearType".

Редактировать: Этот вопрос SO довольно подробно рассматривает рендеринг текста и может быть полезным.


Редактировать: проверить эту странность:

<TextBlock Text="Lorem ipsum dolor sit"
           FontSize="20" TextOptions.TextFormattingMode="Display">
     <TextBlock.RenderTransform>
           <ScaleTransform x:Name="trans" ScaleY="10" ScaleX="10"/>
     </TextBlock.RenderTransform>
     <TextBlock.Triggers>
        <EventTrigger RoutedEvent="Loaded">
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation To="20" Duration="0:0:5"
                                     Storyboard.TargetName="trans" Storyboard.TargetProperty="ScaleX"/>
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
     </TextBlock.Triggers>
</TextBlock>

Как только достигнут определенный масштаб, текст становится для меня понятным, действительно странным ...

1 голос
/ 20 мая 2016

Это сработало для меня:

TextOptions.TextFormattingMode = "Ideal"

как предложено для: http://www.newventuresoftware.com/blog/wpf-text-rendering-quirks-scaletransform

...