Xaml 资源本地化:使用x:Uid引用另一个程序集';s资源

Xaml 资源本地化:使用x:Uid引用另一个程序集';s资源,xaml,windows-8,localization,visual-studio-2012,winrt-xaml,Xaml,Windows 8,Localization,Visual Studio 2012,Winrt Xaml,我正在编写一个win8应用程序,将使用内置的资源管理系统:resw文件和我的XAML代码中的x:Uid标记 所以我创建了一个文本框,如下所示: 我使用ResourceTest.Text条目在程序集中创建了相应的资源文件,它工作正常:在运行时显示正确的文本 现在,为了便于维护,我想将我的所有resx文件移动到另一个C#库中。因此,我将资源文件放在一个全新的项目中,并从主程序集中引用这个新程序集 但这会导致上一个构造失败(不显示文本) 但是,如果使用以下代码从side程序集(称为Resource

我正在编写一个win8应用程序,将使用内置的资源管理系统:
resw
文件和我的XAML代码中的
x:Uid
标记

所以我创建了一个
文本框
,如下所示:


我使用
ResourceTest.Text
条目在程序集中创建了相应的资源文件,它工作正常:在运行时显示正确的文本

现在,为了便于维护,我想将我的所有resx文件移动到另一个C#库中。因此,我将资源文件放在一个全新的项目中,并从主程序集中引用这个新程序集

但这会导致上一个构造失败(不显示文本)

但是,如果使用以下代码从side程序集(称为ResourcesLibrary)内部以编程方式检索资源值,则可以正确获取字符串:

static ResourceLoader ResourceLoader=null;
公共静态字符串GetString(字符串resourceName)
{
if(resourceLoader==null)
resourceLoader=新的resourceLoader(“ResourcesLibrary/Resources”);
返回resourceLoader.GetString(resourceName);
}
在处理程序集外资源时,如何启用
x:Uid
机制?


我在
x:Uid
中尝试了一些东西,例如
ResourcesLibrary/Resources/resourcestest
,但没有成功。

根据我的理解,如果资源保存在.resx文件中,则不能使用x:Uid

如果使用.resw文件,则可以访问字符串,无论它们驻留在哪个程序集中


正如您在问题中提到的“ResourcesLibrary/Resources/ResourceTest”一样,可以访问它们。

很长一段时间以来,我都遇到过同样的问题。但是在进行了一点测试之后,我通过在XAML代码中编写整个资源路径来解决这个问题

大概是这样的:

<TextBlock x:Uid="/ResourcesLibrary/Resources/ResourceTest" />


不幸的是,这个答案来得很晚,但可能对其他人有帮助。

问了这个问题后,你找到解决办法了吗?我现在也面临同样的问题。不,我退回到使用相同的程序集,没有时间进行调查。实际上,我们已经结束了使用此工具为resw资源文件生成代码隐藏类的过程,即使resw在另一个程序集中,它也能很好地工作:感谢您回来发布此消息。