积极答复者
WPF 软键盘

问题
答案
-
你好 Ocean,
你想要你的WPF软件盘当用户在其他app中有输入事件时弹出,对么? 我想你需要的是一个 global keyboard hooks,看一下以下链接:http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx
在其他app出发keyboard时监听到event,然后弹出window。
希望对你有所帮助。
Annabella Luo[MSFT]
MSDN Community Support | Feedback to us
- 已标记为答案 Annabella LuoModerator 2012年10月8日 9:25
-
你好,Ocean
我想首先我们要重新梳理下你的问题,你是想做一个给所有windows桌面程序用的软键盘,还是只是给自己的WPF程序做一个软键盘的control?
如果你是给自己的WPFapp做的这样一个软键盘,那我们很容易实现你的要求,只要在TextBox或是其他可输入控件Focused的时候弹出软键盘即可。
但是如果你针对Windows用户的所有程序做的在输入前就弹出的这样一个软键盘,我认为这是不可能完成的,
你所说的Windows Phone程序中,在可输入控件focused以后,软键盘便会自动弹出,这是肯定的,但是软键盘的弹出是framework所控制的,就是说在Windows Phone的程序中,在可输入控件获得焦点后,framework会自动为该控件弹出软键盘。这些都是在当前程序中完成的,并不涉及到另一个程序。并且Windows Phone中的app是较为固定的类型,例如Silverlight,都是通过framework自动调用内部的软键盘,让软键盘在可输入控件获得焦点时就弹出。
而如果是在Windows中(不包括Windows8),WPF软键盘不可能知道所有各式各样的桌面程序中,当前程序focused on的是不是一个可输入控件,如果你的WPFapp通过一些途径获取别的app的输入控件,那你的这个WPFapp就有是木马病毒的嫌疑(我个人理解哈)。所以我认为监听键盘输入事件是比较合理的做法。
另外,注意到Windows8也支持触摸屏模式,那Windows8种也将涉及到自定义的输入法的问题,在Windows8中,貌似有一个InputPaneFramework 个,可以向自定义输入法发送用户进入输入状态的信息,使得自定义的输入法可以提前显示。这部分我也不是很清晰,不过提供给你做为一个参考。 希望对你有所帮助。
Annabella Luo[MSFT]
MSDN Community Support | Feedback to us
- 已标记为答案 Annabella LuoModerator 2012年10月8日 9:25
全部回复
-
你好 Ocean,
你想要你的WPF软件盘当用户在其他app中有输入事件时弹出,对么? 我想你需要的是一个 global keyboard hooks,看一下以下链接:http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx
在其他app出发keyboard时监听到event,然后弹出window。
希望对你有所帮助。
Annabella Luo[MSFT]
MSDN Community Support | Feedback to us
- 已标记为答案 Annabella LuoModerator 2012年10月8日 9:25
-
你好,Ocean
我想首先我们要重新梳理下你的问题,你是想做一个给所有windows桌面程序用的软键盘,还是只是给自己的WPF程序做一个软键盘的control?
如果你是给自己的WPFapp做的这样一个软键盘,那我们很容易实现你的要求,只要在TextBox或是其他可输入控件Focused的时候弹出软键盘即可。
但是如果你针对Windows用户的所有程序做的在输入前就弹出的这样一个软键盘,我认为这是不可能完成的,
你所说的Windows Phone程序中,在可输入控件focused以后,软键盘便会自动弹出,这是肯定的,但是软键盘的弹出是framework所控制的,就是说在Windows Phone的程序中,在可输入控件获得焦点后,framework会自动为该控件弹出软键盘。这些都是在当前程序中完成的,并不涉及到另一个程序。并且Windows Phone中的app是较为固定的类型,例如Silverlight,都是通过framework自动调用内部的软键盘,让软键盘在可输入控件获得焦点时就弹出。
而如果是在Windows中(不包括Windows8),WPF软键盘不可能知道所有各式各样的桌面程序中,当前程序focused on的是不是一个可输入控件,如果你的WPFapp通过一些途径获取别的app的输入控件,那你的这个WPFapp就有是木马病毒的嫌疑(我个人理解哈)。所以我认为监听键盘输入事件是比较合理的做法。
另外,注意到Windows8也支持触摸屏模式,那Windows8种也将涉及到自定义的输入法的问题,在Windows8中,貌似有一个InputPaneFramework 个,可以向自定义输入法发送用户进入输入状态的信息,使得自定义的输入法可以提前显示。这部分我也不是很清晰,不过提供给你做为一个参考。 希望对你有所帮助。
Annabella Luo[MSFT]
MSDN Community Support | Feedback to us
- 已标记为答案 Annabella LuoModerator 2012年10月8日 9:25