将焦点保留在UI元素上,但单击其他对话框上的按钮。WPF C#

将焦点保留在UI元素上,但单击其他对话框上的按钮。WPF C#,c#,wpf,focus,C#,Wpf,Focus,我正在开发一个触摸屏友好的应用程序,它还包括一个虚拟键盘。我的虚拟键盘在它自己的窗口中,可以随意移动。问题是,当我单击键盘上的一个键时,主应用程序窗口上的文本框不再具有焦点。从作为活动窗口的主应用程序切换到作为活动窗口的键盘对话框意味着主窗口上的任何字段都不再具有焦点。我怎样才能避开这件事 我尝试将键盘窗口设置为不可聚焦。虽然这可能是好的设置,但它并没有解决我的问题 您可以将焦点异步返回到原始窗口: public static void BackgroundFocus(this UIElemen

我正在开发一个触摸屏友好的应用程序,它还包括一个虚拟键盘。我的虚拟键盘在它自己的窗口中,可以随意移动。问题是,当我单击键盘上的一个键时,主应用程序窗口上的文本框不再具有焦点。从作为活动窗口的主应用程序切换到作为活动窗口的键盘对话框意味着主窗口上的任何字段都不再具有焦点。我怎样才能避开这件事


我尝试将键盘窗口设置为不可聚焦。虽然这可能是好的设置,但它并没有解决我的问题

您可以将焦点异步返回到原始窗口:

public static void BackgroundFocus(this UIElement el)    
{        
    Action a = () => el.Focus();        
    el.Dispatcher.BeginInvoke(DispatcherPriority.Background, a);    
}
但这并不理想,因为原始窗口标题在失去焦点时会闪烁。。。
为什么不改为使用?

查看函数setForeGroundIndow(), 我在我的项目中的一些地方用了这么长时间 可能这会帮助您使用,正如已经建议的,似乎是一个好的解决方案。对于自定义窗口,请尝试将设置为false