【问题标题】:Adding text in a new line in WPF RichTextBox at runtime在运行时在 WPF RichTextBox 的新行中添加文本
【发布时间】:2012-04-19 10:20:15
【问题描述】:

我想在运行时在 WPF RichTextBox 中的新行中添加一些文本。 我可以这样做:

FlowDocument mcFlowDoc = new FlowDocument();
mcFlowDoc = richTextBox.Document;
Paragraph pr = new Paragraph();
pr.Inlines.Add(status);
mcFlowDoc.Blocks.Add(pr);
StatusText.Document = mcFlowDoc;

但是两条线之间的差距太大了。我该如何解决这个问题?

【问题讨论】:

  • 顺便说一句,当您更改下一行 mcFlowDoc = richTextBox.Document; 的引用时,没有必要创建新的 FlowDocument (mcFlowDoc = new FlowDocument();)

标签: wpf richtextbox newline


【解决方案1】:

为避免手动设置每个段落的边距,您可以将其添加到 RichTextBox 的 XAML:

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

【讨论】:

  • 您能否举例说明如何为富文本框块或文档设置 xaml? (我刚刚从 c# 开始使用富文本框编程)
【解决方案2】:

尝试pr.Margin = new Thickness(0.0) 删除段落之间的空白。

【讨论】:

    【解决方案3】:

    根据文档,段落间距由边距定义,边距不会累积(不会加倍),所以 Julien Lebosquain 的回答是正确的。

    MSDN on FlowDocument Paragraph Spacing

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 2018-04-11
      • 1970-01-01
      • 1970-01-01
      • 2012-12-21
      • 1970-01-01
      • 2021-02-20
      相关资源
      最近更新 更多