显示主窗口时避免将焦点集中在主窗口上



我目前正在wpf中开发一个弹出程序,该程序被this.hide();MainWindow1.WindowState = WindowState.Hidden隐藏,并使用MainWindow1.WindowState = WindowState.Normal; "弹出"

我的问题是,我不希望主窗口获得任何键盘焦点。因此,无论哪个程序有键盘焦点,当弹出窗口显示时,它都应该保持它

我只是想这样,这样人们就不会因为没有注意到它突然出现,就在不发送的弹出菜单中键入整封电子邮件。

编辑:我不想把注意力集中在任何我自己的程序窗口,而是其他窗口程序(如Outlook)

第2版:这是我的程序的屏幕截图,只是为了澄清关于PopUp类使用的模糊性。

编辑3:也许可以将键盘焦点设置回以前的程序?

所以人们不会在中键入完整的电子邮件

我建议您在弹出窗口运行时将主页控件或其容器Enabled属性设置为false,在不运行时将其反转。因此,用户将注意力集中在弹出窗口上,直到其被确认。

如果您的目的是显示通知表单,请检查该组件:Windows Forms Toolkit NotificationForm

解决方案(看起来)太容易了,你只需要做:

MainWindow1.Showactivated = false;
this.Show();

这将显示主窗口,同时焦点保持在主窗口出现之前有焦点的任何程序上。

最新更新