加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – WPF访问打开的打印对话框并关闭它们

发布时间:2020-12-15 17:15:14 所属栏目:百科 来源:网络整理
导读:我有一个 WPF应用程序,需要在5分钟不活动后注销用户. 但是如果用户打开任何页面的打印对话框,并且不触摸屏幕5分钟, 即使我注销用户并清除所有子元素,打印对话框仍然保留在WPF表单的顶部,并且有人可以继续打印页面用户留下的内容. 我试着用; Window window =
我有一个 WPF应用程序,需要在5分钟不活动后注销用户.

但是如果用户打开任何页面的打印对话框,并且不触摸屏幕5分钟,
即使我注销用户并清除所有子元素,打印对话框仍然保留在WPF表单的顶部,并且有人可以继续打印页面用户留下的内容.

我试着用;

Window window = Application.Current.MainWindow;

要么

FocusManager.GetFocusedElement();

但无法实现访问PrintDialog并关闭它.

有没有办法访问它并关闭如果用户没有响应打印对话框?

解决方法

我通过使用修复了这个奇怪的问题

白色项目.
http://white.codeplex.com/wikipage?title=Working%20with%20window&referringTitle=Programming%20using%20white

通过使用应用程序类,我可以访问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();
        }
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读