假设我有3个项目:LibClassProj
,Proj1
和Proj2
在Windows手机中由c#开发。 Proj1
和Proj2
分享LibClassProj
中的代码。它工作正常。现在的问题是,我无法从LibClassProj
或Proj1
的xaml获取Proj2
的AppResources.resx中的字符串。
例如,这是来自LibClassProj
的xaml的一部分。
SelectableButtonText="{
Binding Path=LocalizedResources.strTestButtonTitleClose,
Source={StaticResource LocalizedStrings}}"
当我将strTestButtonTitleClose
放入LibClassProj的AppResources.resx文件中时,我无法从Proj1
或Proj2
获取此字符串(这意味着设置Proj1
或{{1作为StartUp项目)。如果我把它放在Proj2
的AppResources.resx中,当我选择Proj1
作为StartUp项目时,我可以得到它。与Proj1
相同。
任何人都知道如何将字符串仅放在Proj2
的AppResources.resx中,我可以从其他项目访问它吗?谢谢。
答案 0 :(得分:2)
您需要从每个项目的App.xaml中引用该共享资源:
<Application
...
xmlns:lib="clr-namespace:YourApp.LibClassProj;assembly=YourApp.LibClassProj">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
...
</ResourceDictionary.MergedDictionaries>
<lib:LocalizedStrings x:Key="LocalizedStrings"/>
</ResourceDictionary>
</Application.Resources>
</Application>
然后你应该能够使用你在Proj1和Proj2中提到的字符串:
<TextBlock Text="{Binding Source={StaticResource LocalizedStrings}, Path=LocalizedResources.strTestButtonTitleClose}"/>