首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows 8 Metro RichTextColumns嵌入的超链接和图像

Windows 8 Metro RichTextColumns嵌入的超链接和图像
EN

Stack Overflow用户
提问于 2012-08-06 21:51:19
回答 2查看 2.3K关注 0票数 5

我正在用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新闻应用程序设计。如果你滚动到文章页面,他们在文章内容中有一个区块引用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-27 05:34:29

RichTextBlock包含一个段落集合,一个段落是一个内联列表。内联通常是运行的,但您也可以使用InlineUIContainer作为内联。XAML有一个子元素,它可以是你想要的任何InlineUIContainer元素,超链接或者图片。

我个人使用此函数将超链接从html转换为内联:

代码语言:javascript
复制
    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);
    }

你可以对图像进行类似的思考

票数 4
EN

Stack Overflow用户

发布于 2012-08-07 06:51:42

这并不容易,但对于简单到适度的HTML来说,这是可以做到的。请参阅MSDN上的此示例项目:

http://code.msdn.microsoft.com/windowsapps/RTF-TO-HTML-TO-RTF-in-11ec0bd7

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11829643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档