McK*_*971 3 wpf localization .net-core
我想使用 .resx 文件本地化 .Net Core 应用程序。谁能给我一个完整的分步解决方案?我是 WPF 和 .Net-Core 的新手。当我改变代码中的当前文化时,什么也没有发生。这是我的代码:
<ToolBar>
<Button Content="{x:Static strings:Resource.NewCustomer}" Command="{Binding NewCustomerDelegateCommand}"/>
</ToolBar>
Run Code Online (Sandbox Code Playgroud)
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("de-DE");
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("de-DE");
base.OnStartup(e);
}
}
Run Code Online (Sandbox Code Playgroud)
本地化 WPF 应用程序时,您有多种选择。
\n使用本机 WPF 的方法(使用 UID),请参阅:MSDN。这种方法有一些缺点,文章中有更详细的解释,但一般来说:
\n使用由 PublicResXFileCodeGenerator / ResXFileCodeGenerator 生成的 resx 的强类型资源类。
\n(请参阅 VS 属性窗口中的自定义工具以获取 resx 文件;PS:第二个生成器创建内部类,因此请记住,它只能在存在本地化 xaml 的同一程序集中使用,并且只能与 WPF 绑定一起使用,不使用静态标记扩展)
\n此方法类似于您\xe2\x80\x99 尝试应用的方法,这意味着在 xaml 中您使用 Binding(或 x:Static)到生成的强类型资源类的属性。这种方法的缺点是,每当文化/语言发生更改时,生成的强类型资源类不会提供任何通知。换句话说,您可以提供字符串、标签等,但它们将在解析/加载 xaml 时解析。之后就变成固定内容了:
\n您可以在市场上找到使用 resx 文件本地化 WPF 应用程序的现有解决方案,例如查看: https: //www.qube7.com/guides/localization.html
\n您可以在此处找到资源标记扩展的完整源代码\xe2\x80\x99:Resource.cs
\n