【问题标题】:Disable RichTextBox newline auto-formatting禁用 RichTextBox 换行自动格式化
【发布时间】:2019-04-24 20:07:29
【问题描述】:

一段时间以来,我一直在尝试在 WPF RichTextBox 中使用语法高亮来制作有效的编辑器,到目前为止,这确实是一次痛苦的经历。现在我又遇到了一个问题:

当用户按下回车键或绑定加载文本时,RTB 会添加一些我猜想的段落,并使换行符对我无用。我希望所有换行符都以字符串表示形式(\n、\r 等)且没有段落。我的猜测是有一种简单的方法可以禁用自动 RTB 格式化,但我找不到它。

当然,有很多解决方法(例如,当使用InsertTextInRun("\r\n") 时,不应用自动格式化),但我想简单地禁用自动添加段落。希望有人能帮忙。

【问题讨论】:

  • 我想知道为什么人们将 WPF RichTextBox 编辑为 RichTextBox。这就是在 Windows.Controls.RichTextBox 上找不到有效资源的原因,因为它与 Windows.Forms.RichTextBox 不同。
  • 我猜,因为在 Stackoverflow 中,在问题本身中包含某些单词并不好,其中大多数与标签相同。主要是因为它是多余的。 WPF 已经在您的标签中,并且在 SO 中以这种方式过滤。
  • @dowhilefor 你说的有道理,但问题本身是人们看到的第一件事,所以为什么要冒险让他们找到他们认为错误的答案。好吧,我想 RTB 有点太具体了,无法讨论。
  • @DejanMaksimovic 你找到答案了吗?我现在也有类似的问题。
  • 我不记得找到答案了,这可能是我的错,或者我最终切换到始终在TextRange 中设置Text 属性。我检查过,我没有看到我曾经使用过提到的InsertTextInRun 解决方法。如果您找到解决方案,请务必写下答案。对于遇到同样问题的人,我很乐意接受。

标签: c# wpf richtextbox


【解决方案1】:

如果边距为 0,则禁用自动格式化。见下面的xml代码

   <RichTextBox ...>
        <FlowDocument/>
            <RichTextBox.Resources>
                <Style TargetType="{x:Type Paragraph}">
                    <Setter Property="Margin" Value="0" />
                </Style>
            </RichTextBox.Resources>
    </RichTextBox>

【讨论】:

  • 解释你的解决方案。
猜你喜欢
  • 1970-01-01
  • 2012-03-27
  • 2011-06-22
  • 1970-01-01
  • 1970-01-01
  • 2013-11-04
  • 1970-01-01
  • 1970-01-01
  • 2013-07-25
相关资源
最近更新 更多