我正在用C#和XMAL为Windows8构建一个简单的rss阅读器应用程序。
提要返回文章正文的html内容。
我创建了一个ItemDetailPage,在其中,它使用RichTextBlock列来显示文本列-这看起来很棒。
因此,我将content属性绑定到富文本块,该块使用HtmlUtilities.ConvertToText解析html内容中的文本。
这样做效果很好。然而,我仍然希望在内容中有超链接和图像。最初我使用的是WebView和NavigateToString,但是你不能使用列,所以得到一个很长的文本页面,这是我不想要的。
有没有办法做到这一点?我可以使用Html Agility Pack的metro端口解析图像和超链接,但是有没有办法嵌入这些超链接和图像呢?对于图像,我正在考虑添加到richtextcolumn类中,这样在创建新列时,在添加之前,它会添加一个图像。这可能行得通,但如果在每一列的开头都有一张图片,那就太糟糕了。
有谁知道如何实现这一目标吗?我会类似于他们在http://msdn.microsoft.com/en-us/library/windows/apps/hh868272.aspx上的contoso新闻应用程序设计。如果你滚动到文章页面,他们在文章内容中有一个区块引用。
发布于 2012-10-27 05:34:29
RichTextBlock包含一个段落集合,一个段落是一个内联列表。内联通常是运行的,但您也可以使用InlineUIContainer作为内联。XAML有一个子元素,它可以是你想要的任何InlineUIContainer元素,超链接或者图片。
我个人使用此函数将超链接从html转换为内联:
public void AddLink(XElement element)
{
var link = element.Attribute("href").Value;
InlineUIContainer uc = new InlineUIContainer();
TextBlock tb = new TextBlock();
tb.Margin = new Thickness(0, 0, 0, 0);
var run = new Run();
run.Text = element.Value;
tb.Inlines.Add(run);
tb.Tapped += (s, e) =>
{
Launcher.LaunchUriAsync(new Uri(link, UriKind.Absolute));
};
uc.Child = tb;
paragraph.Inlines.Add(uc);
}你可以对图像进行类似的思考
发布于 2012-08-07 06:51:42
这并不容易,但对于简单到适度的HTML来说,这是可以做到的。请参阅MSDN上的此示例项目:
http://code.msdn.microsoft.com/windowsapps/RTF-TO-HTML-TO-RTF-in-11ec0bd7
https://stackoverflow.com/questions/11829643
复制相似问题