在xaml中只将资源字符串的一部分作为链接

时间:2017-06-06 22:00:52

标签: wpf xaml localization

我的目标是让一个带有链接的字符串打开一个新窗口。问题是字符串必须是可本地化的。

为了使我们的本地化工具能够识别字符串,必须像这样定义:

<sys:String x:Uid="testString" x:Key="testString">click here for a good time</sys:String>

然后会像这样引用该字符串:

<TextBlock Text="{StaticResource testString}"/>

我需要&#34;这里&#34;是一个打开另一个窗口的链接。其他的话在点击时什么也不做。

这甚至可能吗?

2 个答案:

答案 0 :(得分:0)

这些字符串是否有某种原因无法拆分?您已在问题中假设“此处”转换为他们应该点击的位置。

<sys:String x:Uid="prefix" x:Key="testString">click</sys:String>
<sys:String x:Uid="caption" x:Key="testString">here</sys:String>
<sys:String x:Uid="suffix" x:Key="testString">for a good time</sys:String>

<StackPanel>
   <TextBlock Text="{StaticResource prefix}" />
   <Button Command={StaticResource someCommand}>
      <TextBlock Text="{StaticResource caption}" />
   </Button>
   <TextBlock Text="{StaticResource suffix}" />
</StackPanel>

答案 1 :(得分:0)

  

这甚至可能吗?

不是不以某种方式将string分成单词并编写一些代码。您需要在某处定义实际链接。

例如,您可以处理Loaded的{​​{1}}事件并填充其TextBlock属性。

这是一个应该给你这个想法的例子。

Inline
<TextBlock Text="{StaticResource testString}" Loaded="TextBlock_Loaded"/>