xaml - 资源本地化: use of x:Uid referring to another assembly's resource

标签 xaml windows-8 localization visual-studio-2012 winrt-xaml

我正在编写一个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/

相关文章:

wpf - 具有不同调整大小的网格列 "priorities"

WPF通过子容器滚动父容器

windows-8 - 使用 Peerfinder 是否需要 NFC?

XAML 水平堆栈面板滚动

ios - 本地化应用程序仅在非基础语言上崩溃并且仅在不使用 Xcode 运行时崩溃

c# - WPF:自定义控件中的多个内容呈现器?

wpf - 防止在 XAML 中编写大量重复代码

view - Windows 8 应用程序开发 : can't change Display Mode in Visual Studio 2012

wpf - 在 WPF 中本地化

android - 在 Android 中以编程方式更改应用程序语言