显示主窗口时避免将焦点集中在主窗口上
本文关键字:窗口 集中 焦点 显示 | 更新日期: 2023-09-27 18:26:33
我目前正在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();
这将显示主窗口,同时焦点保持在主窗口出现之前有焦点的任何程序上。