如何在Silverlight文本块中显示简单的HTML?

7

我有一个带有HTML标签(B,I,A)的数据源,并需要在Silverlight ListBox中显示它。

搜索后发现这似乎是一个问题,但大多数帖子都很旧,似乎与Silverlight 1有关。

如果没有其他方法,目前最好的方法是使用Silverlight显示简单的HTML,仅使用B、I和A标签来表示粗体、斜体和超链接?

3个回答

3

Silverlight 2.0没有原生支持此功能。但是,有人已经创建了一个名为HtmlTextBlock的控件,它应该适合您的需求。请查看作者在此主题上的帖子。这里还有一个演示页面


目前似乎托管博客的服务器已经宕机。您仍然可以从http://delay.members.winisp.net/SilverlightHtmlTextBlock/SilverlightHtmlTextBlock.zip下载源代码。请注意,它是为Silverlight 2.0 beta编写的,因此可能需要进行一些微小的修改才能正常工作。 - Noldorin

0

如果你想只在XAML中完成:

<TextBlock>
    Text:&#160;<Italic>italic</Italic>&#160;and&#160;<Bold>bold</Bold>
</TextBlock>

&#160是空格的实体。结果为:

文本:斜体粗体


-1

这个评论系统有点古怪。昨晚我添加了两条评论。在添加第二条评论后,我仍然只能看到第一条评论。今天早上,清除浏览器cookie后,我只看到了第二条评论。奇怪。

无论如何,我遇到了一个问题,控件的Html属性绑定了,每次属性更改时都会追加html。我通过在ParseAndSetText()方法的顶部添加以下内容来解决它:

this.SelectAll();            
this.Selection.Text = "";

我也遇到了一个问题,当DOM解析例程失败时会抛出异常,我通过更改以下内容来解决它:

Xaml = null;

使用

this.SelectAll();            
this.Selection.Text = ""; 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接