【问题标题】:RichtTextBlock is not displaying multiple spaces present in the textRichtextBlock 不显示文本中存在的多个空格
【发布时间】:2022-09-28 21:26:10
【问题描述】:

我试图在 RichTextBlock 中显示一些表格数据。 数据中包含多行文本,文本中包含多个空格。 我将每一行作为运行对象添加到段落中。

        string[] lines = tableData;
        Paragraph para = this.TextContent.Blocks.First() as Paragraph;
        para.Inlines.Add(new LineBreak());
        para.Inlines.Add(new LineBreak());
        para.Inlines.Add(new LineBreak());
        para.Inlines.Add(new LineBreak());

        for (int l = 0; l < lines.Length; l++)
        {

            Run r = new Run()
            {
                Text = lines[l],
                FontSize = 9,
            };
            para.Inlines.Add(r);
            para.Inlines.Add(new LineBreak());
        }

RichTextBlock 正在替换多个空格并保留一个,如此处所示 Notepad++ 中的输入文本如下所示(启用特殊字符以突出显示空格)

我在 Paragraph 或 Run 类中找不到任何属性来避免这种情况。

我错过了什么让 RichTextBlock 像这样显示在 Notedpadd++ 中显示的确切文本?

谢谢

  • 问题不是缺少空格,而是 Notepad++ 以等宽字体显示数据(所有字符具有相同的宽度),但 RichTextBlock 使用比例字体显示数据(其中字符可以有不同的宽度)。
  • 谢谢你,@LukeWoodward。请将此移至答案部分,我会标记它。顺便问一下,有没有什么方法可以在 UWP RichTextBlock 中创建这样的表格进行打印?当我使用 Toolkit 中的 DataGrid 时,行包含在带有滚动条的网格中,因此不会溢出以创建多页打印。
  • 我现在已按要求添加了答案。请就如何让您的表格在多个页面上成功打印提出单独的问题。

标签: wpf uwp richtextblock


【解决方案1】:

根据上面的评论,这个问题不是由缺少空格引起的。 Notepad++ 以等宽字体显示表格,其中所有字符具有相同的宽度,但RichTextBlock 使用比例字体显示文本,其中字符可以具有不同的宽度。空格似乎比其他字符窄,因此表格的行不对齐。

【讨论】:

    【解决方案2】:

    我的个人资料有疑问 我的疑问是关于 private void SelectionChanged(object sender, SelectionChangedEventArgs e)

    【讨论】:

      猜你喜欢
      • 2016-06-09
      • 2018-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-06
      • 1970-01-01
      相关资源
      最近更新 更多