C# Wpf防止弹出窗口删除文本框的焦点

C# Wpf防止弹出窗口删除文本框的焦点,c#,.net,wpf,vb.net,C#,.net,Wpf,Vb.net,在我的WPF应用程序中,我使用一个小窗口来显示一些通知,但是当notificationwindow出现时,主窗口中的焦点就会丢失。 例如,当我在文本框中写作时,收到通知(通知窗口显示),文本框失去焦点,我必须再次单击文本框以继续工作 那么,当notificationwindow出现时,如何保持主窗口的焦点呢?我已经尝试在notificationwindow中设置Focusable=“false”这并不是一个如何阻止某些控件聚焦的问题,而是在控件失去焦点后如何聚焦?现在,正如@AdrianFaci

在我的WPF应用程序中,我使用一个小窗口来显示一些通知,但是当notificationwindow出现时,主窗口中的焦点就会丢失。 例如,当我在文本框中写作时,收到通知(通知窗口显示),文本框失去焦点,我必须再次单击文本框以继续工作

那么,当notificationwindow出现时,如何保持主窗口的焦点呢?我已经尝试在notificationwindow中设置Focusable=“false”

这并不是一个如何阻止某些控件聚焦的问题,而是在控件失去焦点后如何聚焦?现在,正如@AdrianFaciu所提到的,当你在你的问题中遗漏了所有相关信息时,很难深入细节。一种选择是在控件失去焦点时将焦点设置为控件:

private void OnControlLostFocus(object sender, RoutedEventArgs e)
{
    YourControlType control = sender as YourControlType;
    if (control != null) control.Focus();
}
窗口对象上有一个属性,因此在显示子窗口后可以保持主窗口处于激活状态

从MSDN:

打开ShowActivated属性设置为false的窗口时,该窗口不会被激活,其激活事件不会引发,直到用户通过选择手动激活该窗口


你能给我们举个小例子来重现这个吗?我们需要更多的信息来帮助您:什么是notificationwindow?如何显示它?谢谢,一个简单有效的解决方案