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

前端之家收集整理的这篇文章主要介绍了c# – WPF访问打开的打印对话框并关闭它们前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 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();
        }
    }

猜你在找的C#相关文章