[英]Change system language for one/active window in WPF
是否只能在WPF中為一個窗口更改系統語言?
我知道InputLanguageManager
但我認為它改變了整個系統的語言。
InputLanguageManager完全符合您的要求。 它會更改當前應用程序的鍵盤布局。
操作系統為每個正在運行的應用程序保留鍵盤布局。 例如。 如果您打開記事本並切換到俄語,打開IE並切換到英語,當您激活記事本應用程序時,您的鍵盤區域設置仍將是俄語。
以下行僅更改當前應用程序的鍵盤區域設置:
InputLanguageManager.Current.CurrentInputLanguage = new CultureInfo("el-GR");
系統語言(或者說系統語言環境)和鍵盤布局是完全不同的概念。 鍵盤布局是鍵盤的布局。
.NET應用程序中使用了三種不同的語言環境:
您還可以利用WPF數據綁定並使用InputLanguage作為附加屬性。 在您的XAML中,您可以將InputLanguageManager.InputLanguage屬性添加到元素的聲明中,如下所示:
<TextBox InputLanguageManager.InputLanguage="en-US"></TextBox>
然后,您可以將該屬性綁定到代碼隱藏中的屬性或ViewModel。 例如。
<TextBox InputLanguageManager.InputLanguage="{Binding MyLanguageInfo}"></TextBox>
將此屬性設置為特定值將導致UI元素的鍵盤更改:
MyLanguageInfo = new CultureInfo("en-US");
要么
MyLanguageInfo = new CultureInfo("el-GR");
您可以更進一步,並將InputLanguage屬性綁定到其他元素,例如。 語言選項的列表框
對於鍵盤布局,您可以通過正確的方式更改InputLanguageManager
。
InputLanguageManager.SetInputLanguage(this,CultureInfo.CreateSpecificCulture("ru"));
使用SetInputLanguage()
方法的第一個參數,您可以設置DependencyObject
,它是鍵盤布局的目標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.