我一直在努力想出一种比LocBaml更好的本地化方法(非常糟糕)。我虽然可以使用{DynamicResource {x:Static LocalizableTexts.OpenTextKey}}之类的东西(dynamicresource,因为我的语言可能会在运行时更改)。唯一的问题是?如何正确创建LocalizableTexts.OpenTextKey?是否有教程可以教我如何创建自定义RessourceKeys以及如何在运行时更新它们?
顺便说一句,我住在MVVM世界......
答案 0 :(得分:0)
我认为你的后组件资源键。
首先在XAML资源字典中定义资源,例如:
<local:OpenText x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type local:LocalizableTexts}, ResourceId=OpenText}" />
然后创建一个静态访问器类:
public static class LocalizableTexts
{
public static ComponentResourceKey OpenTextKey
{
get { return new ComponentResourceKey(typeof(LocalizableTexts), "OpenText"); }
}
}
最后确保在使用静态绑定时指明xml命名空间:
{DynamicResource {x:Static local:LocalizableTexts.OpenTextKey}}