gpt4 book ai didi

c# - 是否可以将 WPF RichTextBox 中的文本设为 "zoom"?

转载 作者:行者123 更新时间:2023-11-30 14:19:04 24 4
gpt4 key购买 nike

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

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

更新:虽然在 RichTextBox 上设置 LayoutTransform 在非常简单的设置下似乎确实有效,但由于以下几点原因,它与设置 ZoomFactor 并不完全相同:

  • 首先,滚动条也被缩放。这看起来很傻。
  • 其次,在我的应用程序中(出于某种原因,但不是在 Kaxaml 中——我将探索这个以找出原因),文本是位图缩放以便它只是放大呈现的文本而不是矢量缩放它所以它很平滑。这是我正在谈论的示例(请注意超大的自定义滚动条):

alt text

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

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

最佳答案

这应该让你开始:

<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

关于c# - 是否可以将 WPF RichTextBox 中的文本设为 "zoom"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3430629/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com