3

我知道如何从 XAML 中的字符串资源中获取资源:

{Binding OK, Source={StaticResource LocStrings}}

但是,我想直接在 C# 中使用本地化字符串,例如

someString = Resources["LocStrings"]["StringId"];

但这不会编译。

4

3 回答 3

4

你需要这样的东西:

var myText = this.FindResource("LocStrings") as string;

我想,您可以更改this到您的资源所在的任何位置。

更新:

通常,这是我用于全局资源的:

var myText = Application.Current.FindResource("resourceName") as string;
于 2014-04-01T18:31:36.110 回答
2

资源字符串可作为自动生成Resources类中的静态成员访问,位于<Default.app.namespace>.Properties.Resources. Properties并且Resources都是不幸的命名空间名称,它们与您在编写 WPF 代码时可能已经在范围内的属性或命名空间发生冲突。因此,您可能必须使用完全限定名称。例如

MyProject.Properties.Resources.AppName

Resources.resx对于名称为“AppName”的字符串。

您应该更喜欢这种获取字符串资源的方法而不是调用FindResource,因为它提供了资源字符串名称的编译时检查。

FFS。人,这怎么可能没有作为答案呢?

于 2020-05-11T01:27:21.970 回答
0

这不是一个完整的答案,但可能对您的国际化应用程序有所帮​​助,请参阅此codeplex 文章可能对您有用。

于 2012-12-15T14:32:20.200 回答