Silverlight Windows 8 Metro XAML本地化

Silverlight Windows 8 Metro XAML本地化,silverlight,xaml,localization,windows-runtime,winrt-xaml,Silverlight,Xaml,Localization,Windows Runtime,Winrt Xaml,我正在将silverlight XAML/C应用程序转换为Metro。对于C#代码来说没有问题。对于XAML,据我所知,XAML提供了新的支持,以简化流程。但是,我希望重用相同的resx文件,因此我更喜欢XAML的旧silverlight机制,即标记扩展或绑定。我刚刚尝试了MarkupExtension,但它似乎不支持。如何转换资源绑定。注意,我的目标是重用资源文件中的名称-值对,因此我将无法使用新的Metro绑定机制 有什么建议吗 silverlight中的类似内容: XAML: 由于旧代码重

我正在将silverlight XAML/C应用程序转换为Metro。对于C#代码来说没有问题。对于XAML,据我所知,XAML提供了新的支持,以简化流程。但是,我希望重用相同的resx文件,因此我更喜欢XAML的旧silverlight机制,即标记扩展或绑定。我刚刚尝试了MarkupExtension,但它似乎不支持。如何转换资源绑定。注意,我的目标是重用资源文件中的名称-值对,因此我将无法使用新的Metro绑定机制

有什么建议吗

silverlight中的类似内容:

XAML:

由于旧代码重用,我将无法使用新的Metro风格本地化:

<TextBlock x:Uid="HelloWorld" />

如果不想更改名称-值对,则必须使用
ResourceLoader
类访问
.resw
文件

var resourceLoader = new ResourceLoader();
// access a given name key
var var someValue = resourceLoader.GetString("someKey");
这意味着您必须编写相当多的属性来绑定,并将XAML更改为新的可绑定属性。因此,或许值得考虑改用新的地铁本地化


有关本地化的完整示例可以在上找到。

我最终编写了一个转换器来更改所有资源文件。Silverlight资源文件中的“somekey”转换为“somekey.Content”。这将使用内容属性(如按钮)自动处理一些UI元素

<TextBlock x:Uid="HelloWorld" />
var resourceLoader = new ResourceLoader();
// access a given name key
var var someValue = resourceLoader.GetString("someKey");