我有一个
WPF应用程序,需要在5分钟不活动后注销用户.
但是如果用户打开任何页面的打印对话框,并且不触摸屏幕5分钟,
即使我注销用户并清除所有子元素,打印对话框仍然保留在WPF表单的顶部,并且有人可以继续打印页面用户留下的内容.
我试着用;
Window window = Application.Current.MainWindow;
要么
FocusManager.GetFocusedElement();
但无法实现访问PrintDialog并关闭它.
解决方法
我通过使用修复了这个奇怪的问题
通过使用应用程序类,我可以访问WPF项目中的所有ModalDialog,并关闭它们.
Application application = White.Core.Application.Attach(Process.GetCurrentProcess().Id); private void dispatcherTimer_Tick(object sender,EventArgs e) { White.Core.UIItems.WindowItems.Window window = application.GetWindow("MainWindow"); List<White.Core.UIItems.WindowItems.Window> modalWindows = window.ModalWindows(); foreach (White.Core.UIItems.WindowItems.Window modalWindow in modalWindows) { modalWindow.Close(); } }