WPF虚拟键盘如何不获得当前焦点 50

用wpf写了个模拟键盘控件,为了处理特殊字符,我在键盘上加了一个按钮,让它点击后会弹出特殊字符的窗口,但是这样原来的比如在输入框里的焦点就失去了,自动跑到新窗口里去了,有... 用wpf写了个模拟键盘控件,为了处理特殊字符,我在键盘上加了一个按钮,
让它点击后会弹出特殊字符的窗口, 但是这样原来的比如在输入框里的焦点就失去了,自动跑到新窗口里去了,有什么方法让弹出窗口时原来的焦点还不变呢?

由于键盘只是一个控件,所以他会在别的地方被用, 所以我无法将失去的焦点设回去。只能想办法让新的窗口弹出时不拿走原有的focus
展开
 我来答
Yeshirow
2009-09-09 · TA获得超过340个赞
知道小有建树答主
回答量:74
采纳率:0%
帮助的人:138万
展开全部
不知道 键盘控件 是否和 TextBox 同在一个 Windows 中?

如果是, 将 键盘控件按钮的 Focusable 属性置为 False,
当点击 Button 时, Input 的焦点并不切换, 并不需要写切换回的代码.
如果在 Button Click 时想得到当前 处于输入(inputable) 状态的控件(例如 TextBox), 可以在 Click 事件中:
IInputElement iie=System.Windows.Input.FocusedElement;
if(iie is TextBox) MessageBox.Show((iie as TextBox).Text);

如果 处于输入状态的控件(如 TextBox) 和你的键盘控件不在同一窗口, 可以在 处于输入状态的控件失去焦点时记下此控件, 以便你在处理按钮事件时用.

另一个方法是, 你自定义的控件 可以增加一个 DependencyProperty 来绑定当前处于输入状的控件. 因为你总需要一个事件来激活虚拟键盘, 在这个事件中设置此属性.
159411
2009-09-09 · TA获得超过172个赞
知道答主
回答量:37
采纳率:0%
帮助的人:13万
展开全部
另一个方法是, 你自定义的控件 可以增加一个 DependencyProperty 来绑定当前处于输入状的控件. 因为你总需要一个事件来激活虚拟键盘, 在这个事件中设置此属性.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
马铃薯T
2009-09-04 · TA获得超过1054个赞
知道大有可为答主
回答量:1921
采纳率:0%
帮助的人:1350万
展开全部
可以从模式对话框还是非模式对话框这个角度考虑考虑
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式