本地化包含链接的文本

时间:2009-09-05 04:22:54

标签: .net wpf xaml hyperlink

我有这个窗口,我有一个包含链接的文本块。类似的东西:

这意味着只有句子中的“here”才是超链接。

我的问题是,我想为本地化做准备。结果,我在resx文件中有文本。所以在resx文件中我有“点击这里阅读文档”字符串。

所以我的问题是,我可以编写一些将该字符串显示为文本块的xaml,但将“here”显示为超链接吗?我理论上可以放一些标记来指示超链接部分的开始和结束位置,我想(类似于“点击阅读文档”,在这种情况下我想要一个超链接。

我知道我可以使用RichTextBox,但我相信RichTextBox中的超链接仅在按住ctrl时才有效。

1 个答案:

答案 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>


资源: image of the resource file

使用上面的代码,您将获得以下结果。

enter image description here

我在后面的代码中处理我的示例中的单击,但也可以将命令绑定到超链接。

代码背后:

 private void Hyperlink_RequestNavigate( object sender, RequestNavigateEventArgs e )
 {
    Process.Start( new ProcessStartInfo( e.Uri.AbsoluteUri ) );
    e.Handled = true;
 }