代码之家  ›  专栏  ›  技术社区  ›  devios1

是否可以“缩放”WPF RichTextBox中的文本?

  •  3
  • devios1  · 技术社区  · 14 年前

    ZoomFactor 我假设的属性正是我想要的——不幸的是,WPF变体似乎完全没有这个属性。

    有没有什么方法可以实现相同的功能(增加/减少整个文档的可见文本大小,而不实际更改底层RTF)?

    虽然在RichTextBox上设置LayoutTransform似乎在非常简单的设置下工作,但它与设置ZoomFactor并不完全相同,因为有两个原因:

    • 其次,在我的应用程序中(出于某种原因,但不是在Kaxaml中——我将对此进行研究以找出原因),文本是 因此,它只是放大渲染文本,而不是矢量缩放它,使之平滑。下面是一个我所说的示例(请注意大自定义滚动条的方式):

    alt text

    好的,我发现位图缩放是由于将TextOptions.TextFormattingMode设置为 Display 而不是 Ideal

    不过还是有那个讨厌的滚动条!我的意思是一个选项是禁用RichTextBox上的滚动,并将其包装在ScrollViewer中,但我想知道这是否会降低性能。我还想知道如果我这样做,文本包装是否仍然有效。

    3 回复  |  直到 5 年前
        1
  •  4
  •   Robert Rossney    14 年前

    <Page
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
      <DockPanel LastChildFill="True">  
         <Slider x:Name="Scale" DockPanel.Dock="Bottom" Minimum="1" Maximum="20"/>
         <RichTextBox>
          <RichTextBox.LayoutTransform>
            <ScaleTransform ScaleX="{Binding ElementName=Scale, Path=Value}" ScaleY="{Binding ElementName=Scale, Path=Value}"/>
          </RichTextBox.LayoutTransform>
         </RichTextBox>
      </DockPanel>
    </P
    
        2
  •  4
  •   Surjit Samra    13 年前

    我注意到WinForms RichTextBox ZoomFactor属性 正是我想要的——不幸的是 WPF变体。

    你需要回去阅读WPF的基础知识。逐项。停在变换处。文本框中缺少ZoomFactor的原因是,每个WPF控件都可以通过通用的标准度量进行转换(缩放、三维转换)和设置动画,因此根本不需要特殊的方法。

        3
  •  0
  •   dkackman Srinivas Kokkula    14 年前

    看一看这个 FlowDocumentReader 我想这正是你想要的。