WPF 的轻量级文本库?

2023-12-21

有谁知道有一个轻度标记文本到样式文本格式化库(即类似 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(使用前将#替换为@)

WPF 的轻量级文本库? 的相关文章

  • STL 迭代器:前缀增量更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的预增量比后增量快 正确吗 如果是 为什么呢 https stackoverflow com questions 2020184 preincrement faster than postinc
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置

随机推荐

  • 在 Devise Simple_Form_For 将新表单发布到 Devise 注册控制器中自定义到新用户注册页面的路由

    一个想法 我应该制作一个继承注册控制器的新控制器吗 然后再做另一个 devise for users controllers gt registration gt newcontroller 将我的 Trial signup html er
  • 如何检查字符串是否包含空格/字母数字/等字符?

    如何在 Swift 中使用 ctype h 库才能使用isAlpha or isSpace在人物上 或者有更好的 快速的方法吗 这个问题已得到解答 但似乎不起作用 Swift 如何确定字母是字母数字还是数字 https stackoverf
  • Heroku:从 MySQL 迁移数据库后 Postgres 类型运算符错误

    这是我之前提出的一个问题的后续问题 该问题更多地表述为编程问题而不是数据库问题 Heroku 上的 Sinatra Haml DataMapper 出现 Postgres 错误 https stackoverflow com questio
  • java中的ROT-13函数?

    是否已经有一个rot13 and unrot13 作为标准 Java 库之一的一部分实现 还是我必须自己写并 重新发明轮子 它可能看起来像这样 int rot13 int c if c gt A c lt Z c c A 13 26 A i
  • 在 laravel 4 中生成相对于基本 url 的 url

    我是 Laravel 的新手 现在正在 L 4 上构建一个应用程序 但卡在一个地方 无法理解如何生成相对于基本 url 的 url 在 laravel 3 中我知道这可以通过 url URL to user profile 但是 在 L 4
  • 在当前项目和插件组(本地、中央)中找不到前缀“jetty”的插件

    为了轻松运行我的 web 应用程序 我决定将 Jetty 添加到我的单个 POM 文件中 继官方文档 https www eclipse org jetty documentation 9 4 x maven and jetty html
  • Android Studio - 如何使用 getExternalFilesDir

    由于谷歌杀死了完美的方法 getExternalStoragePublicDirectory 我必须尝试让 getExternalFilesDir 工作 这是我尝试过的事情之一 private Context context this ge
  • 获取 Google App Engine 数据存储区中不属于列表的随机实体

    我正在使用 Google App Engine 构建网页游戏 游戏有一个存储的用户创建的关卡列表 可能很多 并且动态增加 并且每个用户都有一个他已经玩过的关卡列表 我需要为用户随机选择一个他以前没有玩过的级别 实体建模如下 class Us
  • 为什么 hibernate 给出 ConstraintException 就好像在对象已经存在时尝试创建对象一样

    我在更新 创建 CoverImage 对象时使用 saveOrUpdate 我偶尔会遇到主键约束冲突 org hibernate exception ConstraintViolationException Unique index or
  • 在docker容器中启用mysqli

    我使用以下代码构建一些容器 version 3 services db image mysql 5 7 environment MYSQL ROOT PASSWORD test MYSQL DATABASE test MYSQL USER
  • php整数和浮点比较不匹配

    我有以下代码 amount1 7299 amount2 72 9875 amount2 in cents round amount2 2 100 if amount1 amount2 in cents echo Amount amount1
  • Mysql排序分层数据

    我有一个问题 上周正在处理这个问题 但还无法解决 我可以使用 join 查询子菜单 但我无法订购它 我有一张这样的桌子 id name parent order 1 menu1 0 1 2 submenu1 1 2 3 submenu2 1
  • Django 中关系不存在错误

    我知道关于这个问题有很多问题 我查看了解决方案 不幸的是它们都不适合我 我创建了一个名为 用户管理 的新应用程序 并向该应用程序添加了一个模型 添加模型后 我将用户管理添加到设置中的 INSTALLED APPS 中 然后我运行 pytho
  • 如何用空格填充 NSString?

    例如 我需要 NSString 至少有 8 个字符 而不是使用循环在其上添加左侧填充空格 有没有办法做到这一点 Examples Input Output Hello Hello Bye Bye Very Long Very Long ab
  • 优化导致超时? [复制]

    这个问题在这里已经有答案了 我正在开发一个程序 该程序接受一个整数并查找该整数具有的连续总和的组合数量 数字13可以表示为连续正数之和 整数6 7 十四可以表示为2 3 4 5 也是一个和 连续正整数 有些数字可以表示为 以多种方式求连续正
  • 我知道回调函数是异步运行的,但为什么呢?

    语法的哪一部分提供了该函数应该在其他线程中运行并且是非阻塞的信息 让我们考虑一下 Node js 中的简单异步 I O var fs require fs var path process argv 2 fs readFile path u
  • 用户定义对象的类型转换

    就像我们对 ToString 所做的那样 有没有办法定义转换方法 obj MyClass another class obj 无需在 php 中输入强制类型转换 Edit 由于这个话题似乎引起了一些混乱 我想我应该详细说明一下 在 Java
  • 更改数据捕获仅用于更新和删除

    我们的数据库插入量不大 每晚 200 500k 但更新量很少 每天可能几百个 我需要无限期地保留对插入行本身的所有更改的历史记录 但不是实际的插入 我很想使用更改数据捕获 但支持此操作所需的空间量不可用 如果我能弄清楚做以下其中一项 我的生
  • python从excel创建字典

    我有一个包含 2 列的 Excel 工作表 第一列是姓名 第二列是年龄 我想创建一个字典 其中名称是键 年龄是值 这是代码 但它错误地创建了字典 keyValues x value for x in worksheet col 0 data
  • WPF 的轻量级文本库?

    有谁知道有一个轻度标记文本到样式文本格式化库 即类似 Markdown 或 Textile NET 的东西 但它会生成本机 XAML 文档 或者更确切地说 FlowDocument 模型或类似的可以直接显示在 WPF 应用程序中 以避免使用