我们正在编写需要输入波兰语和中文等语言字符的软件。这些语言广泛使用 Alt-Gr 键,例如 Alt-Gr-OemQuestion 用于西班牙语中的 } 或 Alt-Gr-s 用于波兰语中的 ß 字符。
问题:
这在普通文本框等中工作正常。但是,如果我在列表控件内的数据模板内有一个文本框,则上面西班牙语案例中的 } 字符会丢失,因为列表控件吸收了击键,因为 Alt-Gr 是实际上是 Left-Ctrl+Right-Alt 并结合 OemQuestion 触发相当于 Ctrl-A 并选择列表控件中的所有项目!
波兰语中的 Alt-Gr-s 存在类似问题,其中基本的 Left-Ctrl+Right-Alt-s 实际上执行 Ctrl-s 并触发保存!
我们找到了一个解决方案,通过使用 pinvoke 在 KeyDown 事件中使用 ToUnicode 函数来获取正确的字符并将其插入到文本框中,但这违反了使用在隔离存储等中运行的 Click-Once 应用程序的权限(我认为,这东西有点生锈)。
有任何想法的人吗?