使用RichTextBlock或其他组件在WinRT中显示Html

时间:2012-10-26 13:38:47

标签: c# html windows-8 windows-runtime converter

我想用一些组件在字符串中显示html。现在我正在使用RichTextBlock,我尝试了几个扩展来将html转换为xaml或rtf,但我没有找到任何与WinRT一起工作。我知道我可以使用WebView但它不是那么漂亮。我只想对ItemDetailPage(使用RichTextBlock)进行少许更改,以向用户显示基本的html(粗体,斜体,链接,图像......)。

是否有一些组件或某种方式如何做到这一点(不是webview)?还是有工作转换器?

3 个答案:

答案 0 :(得分:3)

我终于厌倦了缺乏WinRT支持的Html到Xaml的转换并编写了我自己的。对于踢球,我把它放在codeplex上。为了进一步踢,并试验NuGet,我也在那里发表了......

显然,这不是Html到Xaml转换的最终结果,但它是一个开始......

答案 1 :(得分:2)

你有两种方式

  1. 构建或获取自己的html到xaml解析器以将内容用作RichTextBox Source
  2. 使用WebView显示html内容
  3. 我推荐使用WebView,因为这个组件有许多功能很难作为解析器来实现

    • javascript支持
    • css support
    • 糟糕的形式(现实世界)html支持

    因此,在WebView控件中,您可以使用WebView.NavigateToString方法显示存储在字符串中的html内容。

    哟甚至可以修改字符串以更改样式,添加脚本等,因为您需要自定义webview外观。

    NavigateToString不支持绑定,但我写了一篇文章(西班牙语),教导如何使用附加属性:http://blogs.msdn.com/b/juank/archive/2012/10/29/tutorial-crear-app-lector-rss-winrt-parte-7.aspx

    使用此代码(plex)进行解析,如果不完全适合您可以更改自己的代码。 ;)http://html2xaml.codeplex.com/

    另外,你会自己创建ode,如果你想在列文本中打破页面(到水平阅读)你必须使用RichTextBlock,使用RichTextColumns hepler类(当你从模板启动应用程序时包含在Common /文件夹中)和尝试将HTML解析为XAML。

答案 2 :(得分:1)

我实现了一个解析HTML的库,并使用本机控件呈现HTML。该组件非常灵活且可扩展。

看看: