使用RenderTransform时如何防止文本像素化?

时间:2011-05-01 19:17:18

标签: c# wpf graphics richtextbox rendertransform

当我使用RenderTransform属性并向上扩展RichTextBox时,我得到了像素化的放大文本(方形文本边缘)。

我怎么能阻止这个? enter image description here

编辑:

我有TextOptions.TextFormattingMode =“显示” - 当我删除此选项时,一切都很好!

2 个答案:

答案 0 :(得分:2)

不能声称我可以使用我当前的设置重现这一点:

enter image description here

这是20的比例。我认为这可能取决于ClearType系统设置,您可以尝试在RichTextbox上设置RenderOptions.ClearTypeHint="Enabled",这可能会强制执行它。

同时尝试设置TextOptions.TextRenderingMode="ClearType"

修改 This SO question非常深入地处理文字呈现,可能会有所帮助。


编辑:看看这个怪异:

<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 :(得分:1)

这对我有用:

TextOptions.TextFormattingMode = “理想”

建议: http://www.newventuresoftware.com/blog/wpf-text-rendering-quirks-scaletransform