我正在使用资源字典提供多语言支持,并将我的标签链接为DynamicResource。但是,是否有一种简便的方法也可以将超链接的NavigateUri用作DynamicResource?我在mscorlib中找不到任何Uri类型。超链接控件应链接到的Uri依赖于语言,我希望使其保持简单并在我的词典中包含超链接。
在字典中:
xmlns:system="clr-namespace:System;assembly=mscorlib"
<system:String x:Key="ww-url-label">Password forgotten?</system:String>
<system:String x:Key="ww-url">https://somelink</system:String>
在xaml窗口中:
<Hyperlink NavigateUri="{DynamicResource ww-url}" RequestNavigate="Hyperlink_RequestNavigate">
<TextBlock Text="{DynamicResource ww-url-label}" />
</Hyperlink>
显然,NavigateUri不起作用。我当然可以以编程方式添加该链接,但是我希望将其保留在ResourceDictionary中。有一个简单的技巧可以做到这一点吗?
答案 0 :(得分:1)
显然NavigateUri不起作用
显然不是。。如果遇到错误,请始终将其添加到问题中。
您的错误是您试图使用string
来指定Uri
,所以您得到了
无法将类型为“ System.String”的对象转换为类型为“ System.Uri”。
进行此更改以定义ww-url
,就可以了:
<ResourceDictionary xmlns:sys="clr-namespace:System;assembly=System" ...>
<sys:Uri x:Key="ww-url">https://somelink</sys:Uri>
</ResourceDictionary>