XAML中的数据绑定资源文件

对于本地化我在.NET中使用资源文件(.resx文件)function,但我想知道是否有一种智能方法可以直接在XAML中对各种本地化属性进行数据绑定?

资源文件似乎只暴露静态属性,我无法弄清楚如何从viewmodel或其他资源字典绑定。

此外,如果可能的话,我希望它能在设计时与Expression Blend一起工作。

我就是这样做的。

WPF:

  1. 创建一个资源文件,并在同一个程序集中创建一个具有公共构造函数的类。 确保资源文件标记为public。

  2. 在您的xaml文件中 – 在命名空间中添加对此位置的引用

    xmlns:res="clr-namespace:MyProject.StringResources"

  3. 对于您的文本属性,请使用以下绑定

    TextProperty="{x:Static res:ResourceFileName.ResourceKey}"

Silverlight的:

  1. 按照上面的步骤1和2,然后将资源文件作为资源添加到用户控件或应用程序级资源中:

  2. 对于text属性,请使用以下绑定:

    TextProperty="{Binding ResourceKey, Source={StaticResource resourceLabels}}"

与Geek提出的非常相似,但我认为甚至更容易一些:

在同一个程序集中创建一个类,它inheritance资源文件并公开一个公共构造函数,然后使用该类。

 public class ResourcesProxy : Properties.Resources { ///  /// resolves the problem of internal constructor in resources.designer.cs /// in conjunction with xaml usage ///  public ResourcesProxy() : base() { } }