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

我注意到WinForms RichTextBox有一个ZoomFactor属性,我认为这正是我想要的 – 遗憾的是,WPF变体似乎完全没有。

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

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

  • 首先,滚动条也被缩放。 这看起来很傻。
  • 第二,在我的应用程序中(出于某种原因,但不是在Kaxaml中 – 我会探究这个以找出原因),文本是位图缩放,这样它只是放大渲染文本而不是矢量缩放它所以它是平滑的。 这是我正在谈论的一个例子(注意方式 – 大自定义滚动条):

替代文字http://img822.imageshack.us/img822/298/3b7e4e04afc943ff85b2a98.png

更新2:好的,我发现位图缩放是由TextOptions.TextFormattingMode设置为Display而不是Ideal 。 将其设置为理想状态会重新引入矢量缩放。

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

这应该让你开始:

           

我注意到WinForms RichTextBox有一个ZoomFactor属性,我认为这正是我想要的 – 遗憾的是,WPF变体似乎完全没有。

您需要回过头来阅读WPF的基础知识。 逐项。 在TRANSFORMS停下来。 TextBox中缺少ZoomFactor的原因是,每个WPF CONTROL都可以通过通用标准度量进行TRANSFORMED(缩放,三维变换)和ANIMATED,因此不需要特殊的方法。

看看FlowDocumentReader,因为我认为它有你想要的东西。