有谁知道有一个轻度标记文本到样式文本格式化库(即类似 Markdown# 或 Textile.NET 的东西),但它会生成本机 XAML 文档(或者更确切地说,FlowDocument 模型或类似的可以直接显示在 WPF 应用程序中),以避免使用 Web 浏览器?
轻量级的奖励积分。我希望能够容忍源文本中非常频繁的更新。
或者,是否有可以在 WPF 中使用的轻量级 HTML 渲染控件? (我不认为标准 WebBrowser 是轻量级的。)
我不知道有这样一个预先构建的库,但我确实有一些想法可能对您有所帮助。
我心中的第一个大问题是,当您可以使用 RichTextBox 时,为什么要使用像 Markdown 这样的原始东西。由于浏览器的限制,StackOverflow 和类似网站需要 Markdown。但如果您的应用程序是 WPF,这不是问题。
关于您可能想要这样做的原因的一种猜测是您希望您的文档在 WPF 和最低公分母 Web 应用程序中都是可编辑的。在这种情况下,您将需要一个将 Markdown 呈现为 HTML 的引擎,那么为什么不利用相同的引擎将 Markdown 转换为 XAML呢?
将任意 HTML 转换为 XAML 非常困难,但转换 Markdown 转换器输出的 HTML 类型则完全是另一回事。大多数 Markdown 风格的转换器仅输出一些简单的 HTML 标签,所有这些标签都可以轻松转换为等效的 XAML。
如果您使用 Markdown 到 HTML 转换器,它将为您完成所有繁重的工作(解析文本等),并为您留下一个相对容易解析的类似 XML 的文档(准确地说是 HTML) 。此外,如果您在其他地方使用 Markdown 到 HTML 转换器,您将确信您的 Markdown 解析器将在 HTML 和 XAML 中以完全相同的方式解析您的 Markdown 语法,因为在每种情况下它都是相同的解析器。
所以基本上我的想法是:
string html = MarkdownEngine.MarkdownToHtml(markdown);
string xaml = MarkdownHtmlToXamlTranslator.HtmlToXaml(html);
您可以围绕 Markdown 引擎实际输出的内容设计 MarkdownHtmlToXamlTranslator 的实现。它可以是一个非常简单的 XSLT,或者您可以使用 LINQ to XML 以及 XDocument 构造技术。无论哪种方式,它都应该是非常小的代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)