WPF虚拟键盘如何不获得当前焦点 50
用wpf写了个模拟键盘控件,为了处理特殊字符,我在键盘上加了一个按钮,让它点击后会弹出特殊字符的窗口,但是这样原来的比如在输入框里的焦点就失去了,自动跑到新窗口里去了,有...
用wpf写了个模拟键盘控件,为了处理特殊字符,我在键盘上加了一个按钮,
让它点击后会弹出特殊字符的窗口, 但是这样原来的比如在输入框里的焦点就失去了,自动跑到新窗口里去了,有什么方法让弹出窗口时原来的焦点还不变呢?
由于键盘只是一个控件,所以他会在别的地方被用, 所以我无法将失去的焦点设回去。只能想办法让新的窗口弹出时不拿走原有的focus 展开
让它点击后会弹出特殊字符的窗口, 但是这样原来的比如在输入框里的焦点就失去了,自动跑到新窗口里去了,有什么方法让弹出窗口时原来的焦点还不变呢?
由于键盘只是一个控件,所以他会在别的地方被用, 所以我无法将失去的焦点设回去。只能想办法让新的窗口弹出时不拿走原有的focus 展开
3个回答
展开全部
不知道 键盘控件 是否和 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 来绑定当前处于输入状的控件. 因为你总需要一个事件来激活虚拟键盘, 在这个事件中设置此属性.
如果是, 将 键盘控件按钮的 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 来绑定当前处于输入状的控件. 因为你总需要一个事件来激活虚拟键盘, 在这个事件中设置此属性.
展开全部
另一个方法是, 你自定义的控件 可以增加一个 DependencyProperty 来绑定当前处于输入状的控件. 因为你总需要一个事件来激活虚拟键盘, 在这个事件中设置此属性.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以从模式对话框还是非模式对话框这个角度考虑考虑
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询