在文本框中显示 HTML 格式的文本并保留布局

本文关键字:文本 布局 格式 保留 HTML 显示 | 更新日期: 2023-09-27 17:56:33

我有一个包含HTML格式文本的html文件。我想将此文本显示在 c# wpf 应用程序中的文本框中。我正在使用HTML敏捷包来解析文本。

HtmlDocument HD = new HtmlDocument();
HD.LoadHtml(rangescenes.Text);
var root = HD.DocumentNode;
var sb = new StringBuilder();
foreach (var node in root.DescendantsAndSelf())
{
    if (!node.HasChildNodes)
    {
         string text = node.InnerText;
                 sb.AppendLine(text);
    }
}
Script = sb.ToString();

结果是我得到了每一行,但我失去了布局。 比如填充和文本缩进。

LOREM IPSUM DOLOR SITM AET   1
Lorem ipsum dolor sitm aet, consectetur adipiscing elit. 
Phasellus et neque rhoncus, accumsan augue sit amet.
NAME
blablalbal blablabla blablablab
bla blablablablablalb blablalba

我想得到这个:

1     LOREM IPSUM DOLOR SITM AET                            1
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
      Phasellus et neque rhoncus, accumsan augue sit amet.
                           NAME
                blablalbal blablabla blablablab
                bla blablablablablalb blablalba

有没有办法在文本框中显示此 HTML 文件,就像网络浏览器显示带有填充和文本缩进的 HTML 文件一样?

在文本框中显示 HTML 格式的文本并保留布局

首先你需要一个隐藏的Web浏览器

 <WebBrowser Grid.Row="2" Grid.Column="0" x:Name="myWebBrowser" Visibility="hidden"
                    Width="480" Height="480" Margin="2 2 2 2" ></WebBrowser>

并在代码隐藏中加载您的 HTML。

myWebBrowser.NavigateToString(sb.ToString());

之后,您需要将内容复制并粘贴到文本框中。

myWebBrowser.Document.ExecCommand("SelectAll", false, null);
myWebBrowser.Document.ExecCommand("Copy", false, null);
yourTextBox.Paste();

我希望它有帮助!!