Wpf阻止弹出窗口移除文本框的焦点

时间:2014-09-19 08:02:52

标签: c# .net wpf vb.net

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

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

2 个答案:

答案 0 :(得分:1)

不是我怎么能阻止某些控件变得专注?,而不是如何在失去焦点后关注我的控件?现在,正如@AdrianFaciu所提到的,当你从你的问题中省略了所有相关信息时,很难详细说明。一种选择是在失去焦点时将焦点设置到控件上:

private void OnControlLostFocus(object sender, RoutedEventArgs e)
{
    YourControlType control = sender as YourControlType;
    if (control != null) control.Focus();
}

答案 1 :(得分:0)

Window对象上有一个ShowActivated属性,因此您可以在显示子窗口后激活主窗口。

来自MSDN:

  

当打开ShowActivated属性设置为false的窗口时,窗口不会被激活,并且在用户通过选择窗口手动激活窗口之前不会引发其Activated事件。