【问题标题】:Making URLs on a textblock clickable使文本块上的 URL 可点击
【发布时间】:2010-12-27 00:45:22
【问题描述】:
我正在编写一个小 Twitter 客户端只是为了好玩。我在TextBlock 上有推文的文本,我想让 URL 可点击。
我知道我必须使用正则表达式解析 URL,但是...我如何将文本加链接放在 TextBlock 上?
我不能有这样的字符串:Hello check my blog at <Hyperlink>http://myblogurl.com</Hyperlink>,因为TextBlock 不解析标签。
那么,我怎样才能拥有一个可能有链接或没有链接的TextBlock?
谢谢。
【问题讨论】:
标签:
c#
wpf
xaml
hyperlink
textblock
【解决方案1】:
您可以在后面的代码中解析字符串并构建内容控件集合,将您的文本块更改为换行面板并将面板的子项设置为您创建的集合。
【解决方案2】:
类似...
<TextBlock>
<Hyperlink Name="btnOpen" Click="btnOpen_Click">
<TextBlock Text="Click to Open" />
</Hyperlink>
</TextBlock>
【解决方案3】:
<RichTextBox IsDocumentEnabled="True">
<FlowDocument>
<Paragraph>
This is a richTextBox. And this is a <Hyperlink NavigateUri="http://www.microsoft.com">Hyperlink</Hyperlink>.
</Paragraph>
</FlowDocument>
</RichTextBox>
MSDN discussion
【解决方案4】:
与其使用 TextBlock,不如看看使用 WPF 版本的 RichTextBox。它是一种非常灵活的小动物。