【问题标题】:Load HTMl in RichTextBlock in metro apps在 Metro 应用程序的 RichTextBlock 中加载 HTML
【发布时间】:2013-07-06 07:39:02
【问题描述】:

我在 webview 中遇到了一些问题, 在我的网页视图中,我正在加载带有图像的本地 HTMl 文件(转换为 Base64 字符串)并根据我们的要求添加 CSS,

            MainView.NavigateToString(css.ToString()); //CSS is String Builder

现在我在同一页面上添加弹出窗口,如果您单击文本,它将在 webview 中显示相关的 HTML 页面,然后我尝试使用水平导航等加载 Html。

但是 webview 不允许任何其他控件在它上面, 由于这个原因,我会选择 RichTextBlock。

但是在 RichTextBlock 中加载 HTML 字符串的初始点是什么,

问题:如何在 RichTextBlock 或任何其他控件而不是 Webview 中加载 HTML 字符串。

【问题讨论】:

  • 不幸的是,除了从一开始就创建 WinJS/HTML 应用程序之外,我认为 WebView 是将 HTML(作为内容而不仅仅是文本)加载到 C#/Xaml 应用程序的唯一方法。如果您可以将 HTML 转换为 XAML,那么您可以使用XamlReader,更具体地说,可以使用XamlReader.Load
  • @NateDiamond 在使用 XamlReader 之后,我必须将哪个控件用于 XAML,我没有得到你的意图。现在我正在 webview 中加载字符串(其中包含图像、带有 HTML 的 CSS)。我知道我可以为此使用 RichTextBlock。但我想知道如何使它成为可能。感谢您考虑我的问题。
  • 查看this 答案。基本上,您需要将 HTML 转换为 XAML 控件,例如 Grids、Runs、Spans 等。然后,您可以使用 XamlReader.Load 从 HTML 中解析新的自定义控件并将其设置为 RichTextBlock 的内容(通过其 BlockCollection 属性)。可以这么说,做起来挺难的。您可能想查看this 库,虽然它已经很长时间没有更新了,所以您可能需要一些工具。

标签: c# microsoft-metro windows-store-apps richtextblock


【解决方案1】:

您应该阅读来自 MSDN "Displaying HTML Content in a RichTextBlock" 的这篇博文。

如果您想加入,请在该帖子中here code

【讨论】:

  • 看起来不错,我会通过它...并尽快回复您。你建议的样本出错,我必须去[code.msdn.microsoft.com/windowsapps/…]谢谢你
  • 太棒了!我也在提高我的 wpf/winrt 水平
猜你喜欢
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 2013-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-12
  • 2012-07-30
相关资源
最近更新 更多