【问题标题】:How to show basic HTML Windows8 Metro style TextBlock?如何显示基本的 HTML Windows8 Metro 风格 TextBlock?
【发布时间】:2012-10-27 02:19:57
【问题描述】:

我有一个仅包含 <p><strong><br /><a> 标记的 html 页面。我想在 Windows 8 的 XAML TextBlock 中显示此内容。有没有办法在 TextBlock 中显示该内容而不会丢失结构(例如段落)?我不想使用WebView,因为WebView 不能透明。

【问题讨论】:

  • 你能用RichTextBlock吗?您必须自己将 HTML 标记翻译成段落等。除了 Metro 不支持内联超链接,虽然有一个 workaround
  • 是的,我可以使用 RichTextBlock。但是,我不知道如何动态填充 RichTextBlock。我正在使用绑定。
  • This answer 动态创建丰富的内容。它实际上是针对 Silverlight 的,但如果代码有很大不同,我会感到惊讶。

标签: c# xaml windows-8 windows-runtime winrt-xaml


【解决方案1】:

我正在开发一个开源的 Windows 8 Metro RSS 阅读器应用程序,我使用了HtmlUtilities.ConvertToText

你可以在这里看到源代码实现http://metrorssreader.codeplex.com/SourceControl/changeset/view/17913#265003

【讨论】:

  • 甜蜜的僵尸耶稣谢谢你链接到这个。我不知道这是被纳入框架工作的,并且浪费了大量时间追逐我的尾巴却一无所获!谢谢!
【解决方案2】:

如果你想在 XAMl 中做,只需添加一个转换器。

    public sealed class TextToHtmlConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        if (value is string)
        {
            return HtmlUtilities.ConvertToText(value.ToString());
        }
        else
        {
            return value;
        }
    }

    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        throw new NotImplementedException();
    }
}

然后在您的 XAML 中添加资源引用。

然后用转换器绑定:

Text="{Binding titleFull,Converter={StaticResource TextToHtmlConverter}}"

【讨论】:

    猜你喜欢
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-16
    相关资源
    最近更新 更多