Ter*_*rry 5 c# xaml microsoft-metro windows-8
我正在为C#和XMAL中的Windows 8构建一个简单的rss阅读器应用程序.
Feed返回文章正文的html内容.
我创建了一个ItemDetailPage,在其中,它使用RichTextBlock列来显示文本列 - 看起来很棒.
所以我将Content属性绑定到富文本块,该块使用HtmlUtilities.ConvertToText来解析html内容中的文本.
这很好用.但是我仍然希望在内容中包含超链接和图像.最初我使用的是WebView和NavigateToString但是你不能使用列,所以得到一长页文本,这是我不想要的.
有没有办法做到这一点?我可以使用Html Agility Pack的metro端口解析图像和超链接,但有没有办法嵌入这些超链接和图像?对于图像,我考虑添加到richtextcolumns类,因此在创建新列时,在添加之前,它添加了一个图像.这可能有效,但在每列开头的图像都会很糟糕.
有没有人有任何想法如何实现这一目标?我将类似于他们已经拥有的contoso新闻应用程序设计http://msdn.microsoft.com/en-us/library/windows/apps/hh868272.aspx.如果您滚动到文章页面,他们在文章内容中有一个块引用.
RichTextBlock 包含段落的集合,段落是内联列表。内联通常是运行,但您也可以使用 InlineUIContainer 作为内联。InlineUIContainer 有一个子级,可以包含您想要的任何 XAML 元素、超链接或图像。
我个人使用这个函数将超链接从 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);
}
Run Code Online (Sandbox Code Playgroud)
您可以使用图像进行类似的思考
归档时间: |
|
查看次数: |
2334 次 |
最近记录: |