我有这个窗口,我有一个包含链接的文本块。类似的东西:
这意味着只有句子中的“here”才是超链接。
我的问题是,我想为本地化做准备。结果,我在resx文件中有文本。所以在resx文件中我有“点击这里阅读文档”字符串。
所以我的问题是,我可以编写一些将该字符串显示为文本块的xaml,但将“here”显示为超链接吗?我理论上可以放一些标记来指示超链接部分的开始和结束位置,我想(类似于“点击阅读文档”,在这种情况下我想要一个超链接。
我知道我可以使用RichTextBox
,但我相信RichTextBox
中的超链接仅在按住ctrl时才有效。
答案 0 :(得分:0)
强大的texttrong text一种方法是将总文本分成三部分。一个用于超链接之前的文本,超链接文本本身是超链接后文本的一部分。 您的代码和资源应如下所示:
<强>代码:强>
<TextBlock>
<Run Text="{x:Static Properties:Resources.TextBlock_LinkFirstPart}" />
<Hyperlink NavigateUri="http://www.google.com"
RequestNavigate="Hyperlink_RequestNavigate">
<Run Text="{x:Static Properties:Resources.TextBlock_LinkPart}" />
</Hyperlink>
<Run Text="{x:Static Properties:Resources.TextBlock_LinkSecondPart}" />
</TextBlock>
的资源:强>
使用上面的代码,您将获得以下结果。
我在后面的代码中处理我的示例中的单击,但也可以将命令绑定到超链接。
代码背后:
private void Hyperlink_RequestNavigate( object sender, RequestNavigateEventArgs e )
{
Process.Start( new ProcessStartInfo( e.Uri.AbsoluteUri ) );
e.Handled = true;
}