我正在编写一个win8应用程序,并将使用内置的资源管理系统:XAML代码中的resw
文件和x:Uid
标记。
所以我创建一个像这样的TextBox
:
<TextBlock Style="{StaticResource HeaderTextStyle}" x:Uid="ResourceTest"/>
我在我的程序集中使用
ResourceTest.Text
条目创建了相应的资源文件,并且该文件工作正常:在运行时显示正确的文本。现在,我想将所有resx文件移至另一个C#库,以实现可维护性。因此,我将资源文件放在一个全新的项目中,并从主程序集中引用了此新程序集。
但这会导致以前的构造失败(不显示任何文本)。
但是,如果我使用以下代码从侧面程序集(称为ResourcesLibrary)内部以编程方式检索资源值,则可以正确获取字符串:
static ResourceLoader resourceLoader = null;
public static string GetString(string resourceName)
{
if (resourceLoader == null)
resourceLoader = new ResourceLoader ("ResourcesLibrary/Resources");
return resourceLoader.GetString (resourceName);
}
处理组装外资源时,如何启用
x:Uid
机制? 我尝试了
x:Uid
中的一些操作,例如ResourcesLibrary/Resources/ResourceTest
,但是没有运气。
最佳答案
我有相同的问题很长时间了。但是经过一点测试之后,我通过在XAML代码中编写资源的整个路径来解决了该问题。
像这样的东西:
<TextBlock x:Uid="/ResourcesLibrary/Resources/ResourceTest" />
不幸的是,这个答案来得很晚,但是可能可以帮助其他人。
关于xaml - 资源本地化: use of x:Uid referring to another assembly's resource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14929590/