4
A
回答
14
InputLanguageManager完全符合您的要求。它改變當前應用程序的鍵盤佈局。
鍵盤佈局由操作系統爲每個正在運行的應用程序保留。例如。如果您打開記事本並切換到俄語,打開IE並切換到英語,當您激活記事本應用程序時,鍵盤語言環境仍然是俄語。
下面的行改變鍵盤的區域設置只是爲了當前應用程序:
InputLanguageManager.Current.CurrentInputLanguage = new CultureInfo("el-GR");
系統語言(或更確切地說,系統區域)和鍵盤佈局是完全不同的概念。鍵盤佈局是鍵盤的佈局。
有在.NET應用程序使用了三個不同的區域:
- 的UI區域是用於顯示消息和選擇局部UI字符串和佈局的語言環境。您可以通過設置其Thread.CurrentUICulture屬性來更改線程的UI語言環境。其初始值由操作系統在區域設置中的顯示語言決定
- 線程的語言環境用於分析字符串並將日期和數字轉換爲字符串。您可以通過設置Thread.CurrentCulture屬性來更改它。其原始值由操作系統的區域設置管理。格式屬性
- 系統語言環境由非Unicode應用程序或寫入ASCII文件和控制檯時使用。
您還可以利用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財產其他要素,例如。語言選項列表框
2
對於鍵盤佈局更改您是否正確地使用InputLanguageManager
。
InputLanguageManager.SetInputLanguage(this,CultureInfo.CreateSpecificCulture("ru"));
隨着SetInputLanguage()
梅索德的第一個參數設置的DependencyObject
這是你的鍵盤佈局的目標。
相關問題
- 1. WPF - 如何動態更改窗口的語言屬性
- 2. 更改系統語言C#
- 3. 活動窗口上是否有Windows系統事件更改?
- 4. WPF窗口更改另一個窗口的控件的值
- 5. 更改WPF窗口的啓動位置
- 6. 安卓更改只有一個活動的語言環境
- 7. 請參閱WPF中的活動窗口?
- 8. 如何更改WPF中的語言?
- 9. 運行系統語言改變的Android
- 10. WP:活動日曆更改語言
- 11. 更改所有活動語言
- 12. 在PostgreSQL中更改系統和錯誤消息的語言
- 13. 在UWP中更改語言不會更改系統功能語言 - 僅在應用程序重新啓動時
- 14. WPF動態更改窗口樣式
- 15. WPF更改窗口高度
- 16. 更改語言聯繫表
- 17. 更新WPF中的系統
- 18. MVVM WPF從一個窗口順利地更改爲另一個窗口
- 19. 在自定義窗口中啓動窗口的系統菜單
- 20. 如何在WPF/XAML中更改語言
- 21. WPF - 僅在MainWindow中更改語言?
- 22. 操作系統的語言?
- 23. 更改窗口顯示大小統一
- 24. php語言系統
- 25. 主機在另一個WPF窗口中的WPF窗口
- 26. 檢查應用程序上的系統語言更改
- 27. 如何更改窗口小部件中的textView的值,從另一個活動中的textEdit的值更改
- 28. 如何更改我的標籤語言不更改我的系統語言按鈕按下時?
- 29. 在iOS系統語言中更改字符串
- 30. 在java編程中更改系統語言。
「系統」語言是什麼意思?用於顯示消息和標籤的語言或用於解析輸入的語言?幾乎所有受語言影響的函數都接受一個IFormatProvider參數,您可以使用它來傳遞您想要的CultureInfo –
這是否意味着更改應用程序中的輸入鍵盤佈局? – Smartis
這適用於我在整個操作系統中使用的語言。 –