2011-05-01 94 views
6

当我使用RenderTransform属性并放大一个RichTextBox时,我得到了像素化的放大文本(正方形文本边缘)。如何在使用RenderTransform时防止文字像素化?

我该如何预防? enter image description here

编辑:

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

+0

你需要什么'TextFormattingMode'? – 2011-05-03 07:49:45

回答

2

不能说我可以用我的当前设置复制此:

enter image description here

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

也尝试设置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> 

只要达到了一定的规模文本变得清楚对我来说,真是奇怪......

+0

如果我保留TextOptions.TextFormattingMode =“Display”并添加RenderOptions,像素化将保留:( – Alfa07 2011-05-03 06:59:32

+0

'TextOptions.TextFormattingMode =“Display”'似乎有效地杀死所有努力使它看起来不错... – 2011-05-03 08:03:12

+0

您使用的字体是什么?只要确保你没有使用位图字体 – 2011-05-03 08:10:11

相关问题