原文:WPF 获得当前输入法语言区域

本文告诉大家如何获得 WPF 输入法的语言区域

需要使用 user32 的方法,很简单,请看下面

       [DllImport("user32.dll")] static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")] static extern uint GetWindowThreadProcessId(IntPtr hwnd, IntPtr proccess);
[DllImport("user32.dll")] static extern IntPtr GetKeyboardLayout(uint thread); public CultureInfo GetCurrentKeyboardLayout()
{
try
{
IntPtr foregroundWindow = GetForegroundWindow();
uint foregroundProcess = GetWindowThreadProcessId(foregroundWindow, IntPtr.Zero);
int keyboardLayout = GetKeyboardLayout(foregroundProcess).ToInt32() & 0xFFFF;
return new CultureInfo(keyboardLayout);
}
catch (Exception)
{
return new CultureInfo(1033); // Assume English if something went wrong.
}
}

因为没有提供语言区域变化的事件,所以需要自己写一个循环来获取

在界面添加一个 TextBlock 请看下面

    <Grid>
<TextBlock x:Name="CeareamearTreseretal" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
</Grid>

这样可以在后台代码给一个值

        private async void HairjurNalllairmo()
{
while (true)
{
await Task.Delay(100);
CeareamearTreseretal.Text = GetCurrentKeyboardLayout().DisplayName;
}
}

这时修改语言区域就可以看到变化

参见 C#: Get current keyboard layout\input language


本文会经常更新,请阅读原文:
https://lindexi.gitee.io/lindexi/post/WPF-%E8%8E%B7%E5%BE%97%E5%BD%93%E5%89%8D%E8%BE%93%E5%85%A5%E6%B3%95%E8%AF%AD%E8%A8%80%E5%8C%BA%E5%9F%9F.html
,以避免陈旧错误知识的误导,同时有更好的阅读体验。


本作品采用
知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议
进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:
https://lindexi.gitee.io
),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请
与我联系

WPF 获得当前输入法语言区域的更多相关文章

  1. 2019-6-23-WPF-获得当前输入法语言区域

    title author date CreateTime categories WPF 获得当前输入法语言区域 lindexi 2019-06-23 11:51:21 +0800 2018-10-12 ...

  2. Android默认输入法语言的修改以及SettingsProvider作用

    Android源码中默认的有三种输入法:英文,中文,日文.对应的工程代码路径为:<android_root>/packages/inputmethods/LatinIME/<andr ...

  3. WPF 实际国际化多语言界面

    前段时候写了一个WPF多语言界面处理,个人感觉还行,分享给大家.使用合并字典,静态绑定,动态绑定.样式等东西 效果图 定义一个实体类LanguageModel,实际INotifyPropertyCha ...

  4. 跟我一起学WPF(1):WPF的UI设计语言——XAML

    XAML是什么 XAML全称是Extensible Application Markup Language (可扩展应用程序标记语言),是专门用于WPF技术中的UI设计语言. XAML基础 XAML是 ...

  5. WPF 本地化(多语言)

    如果你的程序需要本地化,考虑的因素诸多,例如:当文本改变后,控件的当前高度,宽度 是否合适.所在的位置是否合适.字体.布局是否合适?如果已经构建了一个真正自适应的布局,就不会有问题.用户界面应当能够调 ...

  6. C# WPF获取任务栏时间区域的Rectangle

    [StructLayout(LayoutKind.Sequential)] public struct WindowRect { public int left; public int top; pu ...

  7. 如何实现wpf的多国语言

    http://www.cnblogs.com/horan/archive/2012/04/20/wpf-multilanguage.html 4.0版本的locbaml http://michaels ...

  8. WPF 界面实现多语言支持 中英文切换 动态加载资源字典

    1.使用资源字典,首先新建两个字典文件en-us.xaml.zh-cn.xaml.定义中英文的字符串在这里面[注意:添加xmlns:s="clr-namespace:System;assem ...

  9. WPF 多语言实现

    很多国际化的程序都提供了多语言的选项,这样方便不同国家的使用者更方便的使用软件.这篇博客中将介绍在WPF中实现多语言的方式. 方式一,使用WPF动态资源的方式实现.先简单介绍下StaticResour ...

随机推荐

  1. 软件——keil的查找,错误,不能跳转到相应的行

    为什么MDK  keil4.7双击搜索结果不能跳转到相应位置 KEIL搜索的时候双击不跳转到相应的位置 为什么keil点击不能跳转到错误处的问题 在keil中,双击Find In Files中某一行, ...

  2. postman--基本使用1

    本文转自:http://blog.csdn.net/five3/article/details/53021084 HTTP的接口测试工具有很多,可以进行http请求的方式也有很多,但是可以直接拿来就用 ...

  3. 【Redis】redis的安装、配置执行及Jedisclient的开发使用

    定义: Redis is an open source, BSD licensed, advanced key-value cache and store. It is often referred ...

  4. Qt的一些开发技巧

    Lambda匿名函数 有时候槽函数代码辑逻辑非常简单,可以直接用下面的Lambda匿名函数处理信号,简捷明了.需c++11支持,不支持自身递归调用. 1 2 3 4 5 6 7 QComboBox * ...

  5. [WASM] Compile C Code into WebAssembly

    We use the C language instead of pure WAST to create a square root function using WASM Fiddle (https ...

  6. 21、IIS声卡驱动程序

    声卡芯片的数据通道一般都是IIS接口,但是控制音量等控制信息的接口都不相同 (新内核在linux-3.4.2\sound\soc\codecs\uda134x.c) uda134x_codec_pro ...

  7. 致ITFriend用户

    ) 全权处理,相关问题请和他沟通. 祝大家中秋节快乐,一家团团圆圆. 小雷FansUnion   湖北 武汉   2014年9月7日 --------------------------------- ...

  8. php 百度地图 腾讯地图 转换坐标

    /* * 中国正常GCJ02坐标---->百度地图BD09坐标 * 腾讯地图用的也是GCJ02坐标 * @param double $lat 纬度 * @param double $lng 经度 ...

  9. [SCSS] Write Custom Functions with the SCSS @function Directive

    Writing SCSS @functions is similar to writing functions in other programming languages; they can acc ...

  10. MySQL运行环境部署规范

    一:系统安装规范 1.关闭CPU节能,设定最大性能模式. 2.关闭NUMA(主要是为了避免swap).C-states.C1E. 3.阵列卡策略使用FORCE WB,关闭预读. 4.机械盘时,所有盘组 ...