c# - 检测 WPF 中的系统语言更改

标签 c# .net wpf

我们可以使用以下代码来了解 Windows 窗体中系统语言何时更改 - Form.InputLanguageChanged :

string _language = "";
InputLanguageChanged += new InputLanguageChangedEventHandler( (sender, e) =>
{
      language = InputLanguage.CurrentInputLanguage.LayoutName;
});

Form.InputLanguageChanged 的 WPF 等价物是什么?

最佳答案

您可以使用下面的代码来检测 WPF 中的键盘语言变化

string language = "";
System.Windows.Input.InputLanguageManager.Current.InputLanguageChanged += 
       new    InputLanguageEventHandler((sender, e) =>
{
   language = e.NewLanguage.DisplayName;
}); 

注意:不需要检测系统 UI 语言更改,因为它需要注销/登录,这反过来会强制所有应用程序重新启动(查看 Hans Passant 对 How To Detect Language Changes While Runtime ? (C#) 的评论

关于c# - 检测 WPF 中的系统语言更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7341288/

相关文章:

c# - 枚举网络 session

c# - 来自 Enumerable.FromRange().Select() 与 ToList() 的 IEnumerable<T>

javascript - 从 fiddler 或 Swift 而不是 js 调用 signalr

.net - IIS7 应用程序池类型有什么区别

wpf - 如何在控件内引用用户控件主机的 StaticResource?

c# - 带 Prism 4 区域适配器的 AvalonDock 2.0

.net - GridView 自动换行

c# - 将代码中的绑定(bind)设置为 TextBox WPF 上的 Text 属性不起作用

c# - 在使用 ItemsSource 时操作无效。改为使用 ItemsControl.ItemsSource 访问和修改元素

c# - 在 Xamarin Master-Detail MVVM 设置中,如何从 subview 的 View 模型中触发事件并让它被父 View 的 View 模型捕获