我有一个WPF程序,当我本地化它时,它失败了.我输入在Window元素中创建了这个XML命名空间,它对应于文件位置:
xmlns:properties="clr-namespace:ResxEditor.Properties"
Run Code Online (Sandbox Code Playgroud)
这就是我如何本地化每个元素:
<Button Content="{x:Static properties:Resources.FilePickerButton_AddFile}" />
Run Code Online (Sandbox Code Playgroud)
设计师工作得很好,我选择时Resources.,自动完成拉取可用的项目,但是当我构建我的应用程序时,它会崩溃并显示以下错误消息:
抛出异常:PresentationFramework.dll中的'System.Windows.Markup.XamlParseException'
其他信息:'为'System.Windows.Markup.StaticExtension'提供价值引发了异常.行号"5"和行位置"9".
行号和位置对应于x我上面给出的命名空间中的第一个.我试着在网上搜索这条消息,我似乎找不到任何东西.
Hos*_*250 10
经过一个小时左右的搜索网络后,我随机尝试将我的Resources.resx文件中的访问修饰符更改internal为public.为此,请在Visual Studio编辑器中打开.resx文件,并将标记为"Access Modifier"的下拉菜单更改为"public",这应该是除"internal"之外的唯一其他选项.
这将更改.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);
}
}
Run Code Online (Sandbox Code Playgroud)