wpf 将html转换为FlowDocument

inb24sb2  于 2023-05-19  发布在  其他
关注(0)|答案(1)|浏览(248)

我尝试创建一个使用从msaccess数据库导入的文本的wpf核心应用程序。有些字段是Access文本字段,文本设置为RTF文本,但实际上它们看起来像HTML。就像这样:
10630981啦啦啦啦啦啦 {bla 25-09}
我想使用FlowDocumentScrollViewer来显示这个字段,并使用RichTextBox来编辑。因为我喜欢在MVVM模式下工作,所以我需要一个转换器来将这个'Html'转换为flowdocument并返回。
我已经玩了好几天没有得到这个,但还没有成功。我觉得我正在接近以下代码:

FlowDocument document = new FlowDocument();
string xaml = "<p> The <b> Markup </b> that is to be converted.</p>";
using (MemoryStream msDocument = new MemoryStream((new ASCIIEncoding()).GetBytes(xaml)))
{
   TextRange textRange = new TextRange(document.ContentStart, document.ContentEnd);
   textRange.Load(msDocument, DataFormats.Xaml);
}

但是我仍然得到一个异常,说XamlParseException:无法创建未知类型“p”。
谁能给予我推一把?

ldioqlga

ldioqlga1#

您使用了错误的数据格式。您的内容不是有效的XAML字符串。只需使用DataFormats.Text即可。
如果使用DataFormats.Xaml,则输入应该是基于<Run><Paragraph>等XAML元素的有效文档。
您也可以将字符串值直接分配给TextRange.Text属性:

FlowDocument document = new FlowDocument();
string html = "<p> The <b> Markup </b> that is to be converted.</p>";
TextRange textRange = new TextRange(document.ContentStart, document.ContentEnd);
textRange.Text = html;

相关问题