将简单的 HTML 转换为 RichTextBlock

2023-11-21

我从 Windows 8 开始,尝试将 HTML 转换为RichTextBlock.

I 已读过我可以使用这个功能:HtmlUtilities.ConvertToText in a TextBlock但我找不到在中使用此功能的方法RichTextBlock!

据我了解和尝试我无法延长 the RichTextBlock所以我不能每次都应用这个函数RichTextBlock叫做。

另外,我找不到任何方法将文本绑定到RichTextBlock and 构建一个解析器仅仅对于简单的 HTML(我只想要段落和斜体/粗体)似乎有点矫枉过正。另外,我不知道应该在哪里进行此解析,因为我RichTextBlock似乎无法延长。

我无法使用WebView因为我need透明度(从我读到的WebView没有这个功能).

EDIT

@mydogisbox 让我发现我的研究走得太远了。

我可以用HtmlUtilities.ConvertToText在我可以绑定的属性的 getter 中RichTextBlock。我无法绑定它,因为我正在尝试这样做<Run Text="{Binding TextHTML}" />没有<Paragraph> tag.

However HtmlUtilities.ConvertToText不保留斜体或粗体。仅段落:/。


我最终使用了软件包可在 gitHub 上获取从 HTML 转换为 RickTextBlock。

基本上,您只需要打开包管理器控制台(工具>库包管理器>包管理器控制台)并安装包跑步Install-Package RichTextBlock.Html2Xaml.

然后打开 RichTextBlock Properties.cs,您将看到需要复制的行。就我而言,我必须添加名称空间:

xmlns:rtbx="using:EventTests.Common"

然后您可以使用以下方法绑定具有 HTML 的属性:

<RichTextBlock rtbx:Properties.Html="{Binding ...}"/>

一些问题和一些解决方案

我发现这个库的一个问题是它如何处理没有 div 的简单 html。喜欢:

<p>Testing <i>italic</i> and something more.</p>
<p>More testing </p>

这打印:

Testing italic还有更多的东西。
更多测试

但是,我想要这样的东西:

Testing italic还有更多的东西。

更多测试

所以我必须将第二段包裹在一个 div 中(并且除了第一段之外的所有段落都可以包裹)。

<p>Testing <i>italic</i> and something more.</p>
<div><p>More testing </p></div>

如果您将第一段换行,那么您将有一个额外的新行。

到目前为止,这是我找到的最好的解决方案。如果你发现更好,我很感激,因为我正在测试和学习。如果您找到更好的解决方案,我会接受您的。

当心

如果 html 中有“

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将简单的 HTML 转换为 RichTextBlock 的相关文章

随机推荐

  • 带有 Hibernate 后端的鉴别器、WrongClassException JPA

    我需要有一个抽象超类 我有 6 个该抽象超类的子类 我使用 JPA 中的 SINGLE TABLE 继承策略映射它们 在另一个 POJO 中 我与这些 1 6 类有一对多的关系 OneToMany mappedBy mSearchPrefe
  • HTML5 sessionStorage 可以写入磁盘吗?

    相关是否有安全的浏览器缓存 HTML5 会话存储的任何实现是否会写入磁盘 例如我可以依赖拥有一个 安全 私有 缓存吗 我知道它无法在浏览器会话之外持续存在 无论它是否 超时 已结束 注销 浏览器关闭 崩溃 计算机上的电源按钮 See HTM
  • GAE 数据存储备份

    是否有必要对GAE的数据存储进行备份 有谁有这样做的经验 建议和技巧吗 为了防止人为错误 始终需要进行备份 由于 App Engine 鼓励您构建针对同一数据集运行的代码的多个修订版本 因此能够返回非常重要 一个简单的转储 恢复工具在散装机
  • CALayer渲染上下文

    I use CATransform3D rotationAndPerspectiveTransform CATransform3DIdentity rotationAndPerspectiveTransform m34 1 0 500 成功
  • AWS Athena:删除日期范围之间的分区

    我有一个 athena 表 其基于日期的分区如下 20190218 我想删除去年创建的所有分区 我尝试了以下查询 但没有成功 ALTER TABLE tblname DROP PARTITION partition1 lt 20181231
  • 仅使用 CSS 的多色文本

    我不确定我的标题是否连贯地表达了我的问题 但我将在下面解释 我想为每个分配不同的颜色特点在文本字符串中使用only CSS 要查看我的问题的视觉效果以及进一步的解释 http codepen io Connor3xL pen ZOyzJK
  • php安装错误

    我已经使用 php 5 2 11 的插件版本安装了 WampServer2 1e x32 堆栈 我下载了apc3 0 19 dll并放在目录下 并在php ini中提供了所需信息 为了让它发挥作用 重新启动 wamp 服务器并导航到 php
  • 如何使用vbscript(同步)调用Web服务?

    其实例子有很多 我就用过其中之一 但它是异步工 作的 我的意思是它不会等待我调用的函数完成 function ProcessSend Set oXMLHTTP CreateObject MSXML2 XMLHTTP 4 0 Set oXML
  • 使用 javascript 获取我当前的地址

    我有兴趣使用 Javascript 获取我当前的地址 并通过组装其他一些 SO 线程来解决这个问题 1 2 所以想发布这个问题和答案 请参阅下面的答案 这是 HTML p p p p 这是JS var latitudeAndLongitud
  • Android/Java将String日期转换为long类型

    我需要将格式为 dd mm yyyy 的字符串转换为长类型 为了将值传递给android中的calendarProvider 目前我有 Calendar calendar Calendar getInstance long startEnd
  • Facebook PHP SDK - 图表返回错误:无效的 OAuth 访问令牌

    这是我的代码 登录 php
  • 按 WooCommerce 管理订单列表中的特定元字段过滤订单

    谁能告诉我 如何在 woo commerce 订单页面中按公司名称添加 设置过滤器 请分享功能或显示我的错误 以便我可以解决它 我尝试过但没有用 非常感谢您的帮助 add action restrict manage posts admin
  • TypeScript 泛型只会在简单情况下推断联合类型

    这是一个代码示例 declare function test ok
  • 当我在函数体中设置状态时,为什么 React 会变成 Infinite?

    如果我们用相同的值设置状态组件不会重新渲染 但当我在函数体中设置状态时它不适用 例如 如果我在按钮单击和单击按钮上设置相同的状态 则组件不会在按钮单击时重新渲染 function Test1 const name setName useSt
  • 如何解决未经检查的演员警告?

    Eclipse 向我发出以下形式的警告 类型安全 从 Object 到 HashMap 的未经检查的转换 这是对 API 的调用 我无法控制该 API 返回的对象 HashMap
  • noexcept 规范中是否允许使用“this”?

    我有一些代码需要我使用 this 但我希望它是 no except 友好的 struct foo Would actually be something with conditional noexcept void do something
  • Oracle PL/SQL:将整行从触发器转发到过程

    有一个 Oracle 10i PL SQL 行级触发器 它负责三个独立的任务 由于这样触发器相对混乱 我想将这三个任务导出到三个存储过程中 我正在考虑使用my table ROWTYPE参数或者可能是过程的集合类型 但我主要关心的是如何填充
  • 将数据从关系型数据库迁移到NoSQL

    是否有可能 是否有工具 最佳实践等将数据从关系数据库迁移到 NoSQL 格式 我有一个 JEE6 应用程序 利用 Hibernate ORM 持久保存到 MySQL 但现在我们希望转向 NoSQL 解决方案 但需要携带现有数据 Thanks
  • (OS 10048) 每个套接字地址(协议/网络地址/端口)通常只允许使用一次。视窗阿帕奇

    当尝试在 Windows 服务器上执行 httpd exe 时 出现以下错误 OS 10048 每个套接字地址 协议 网络地址 端口 通常只允许使用一次 AH00072 make sock 无法绑定到地址 myIpAddress 80 AH
  • 将简单的 HTML 转换为 RichTextBlock

    我从 Windows 8 开始 尝试将 HTML 转换为RichTextBlock I 已读过我可以使用这个功能 HtmlUtilities ConvertToText in a TextBlock但我找不到在中使用此功能的方法RichTe