为什么我无法本地化我的WPF程序?

时间:2015-08-25 04:01:30

标签: c# wpf

我有一个WPF程序,当我本地化它时,它失败了。我输入在Window元素中创建了这个XML命名空间,它对应于文件位置:

xmlns:properties="clr-namespace:ResxEditor.Properties"

这就是我如何本地化每个元素:

<Button Content="{x:Static properties:Resources.FilePickerButton_AddFile}" />

设计师工作得非常好,当我选择Resources.时,自动完成会提取可用项目,但是当我构建应用程序时,它会因此错误消息而崩溃:

  

抛出异常:&#39; System.Windows.Markup.XamlParseException&#39;在PresentationFramework.dll

中      

其他信息:&#39;为System.Windows.Markup.StaticExtension&#39;提供价值。抛出异常。&#39;行号&#39; 5&#39;和行位置&#39; 9&#39;。

行号和位置对应于我上面给出的命名空间中的第一个x。我尝试在网上搜索此消息,但我似乎找不到任何东西。

1 个答案:

答案 0 :(得分:10)

在搜索网络大约一个小时后,我随机尝试将我的Resources.resx文件中的访问修饰符从internal更改为public。为此,请在Visual Studio编辑器中打开.resx文件,然后更改标记为&#34; Access Modifier&#34;的下拉菜单。 to&#34; public&#34;,除了&#34; internal&#34;之外应该是唯一的其他选择。

enter image description here

这将更改.designer文件中的所有项目以使用public访问修饰符。这些项目的示例如下:

/// <summary>
///   Looks up a localized string similar to Add Files.
/// </summary>
public static string FilePickerButton_AddFile {
    get {
        return ResourceManager.GetString("FilePickerButton_AddFile", resourceCulture);
    }
}