.net 如何从WPF中临时冻结整个显示

.net 如何从WPF中临时冻结整个显示,.net,wpf,screen,freeze,.net,Wpf,Screen,Freeze,我正在寻找一种方法——可能是win32 API——从.Net WPF应用程序中冻结整个显示 理由:嗯,这一次不是为了惹恼用户。我基本上想隐藏一些后台文件操作,它们正在打开文件保存对话框。应用文件名由我的应用程序通过模拟击键来处理 正如所有评论所指出的,这可能是一个糟糕的设计,但无论如何你都需要一个答案 我以前也做过类似的事情,拍摄了一个屏幕截图,把它放在一个没有边框也没有标题的窗口上,这个窗口占用了所有的空间,比其他窗口都高。

我正在寻找一种方法——可能是win32 API——从.Net WPF应用程序中冻结整个显示


理由:嗯,这一次不是为了惹恼用户。我基本上想隐藏一些后台文件操作,它们正在打开文件保存对话框。应用文件名由我的应用程序通过模拟击键来处理

正如所有评论所指出的,这可能是一个糟糕的设计,但无论如何你都需要一个答案


我以前也做过类似的事情,拍摄了一个屏幕截图,把它放在一个没有边框也没有标题的窗口上,这个窗口占用了所有的空间,比其他窗口都高。

:)说真的,如果我有一个冻结的应用程序,我无法避免杀死它,因为我认为它已经坏了。为什么用户不能在没有用户交互的情况下使用filedialog呢。在这种情况下,这不再是一个对话框!见鬼,如果你想以编程方式处理文件op,你会使用一些对话框吗?如果你需要冻结整个显示,那么你可能做错了。如果您的文件操作是以编程方式完成的,那么您不需要打开文件保存对话框和模拟击键,您应该能够跳过整个部分。如果您只是想在程序执行某些操作时暂时阻止用户交互,那么您要查找的属性称为“IsEnabled”。将其设置为窗口级别,它应该向下级联到子控件,除非它们有其他设置为IsEnable。这是否意味着另一次是为了骚扰用户这听起来像是一个设计得很糟糕的程序,而现在你正试图让它变得更可怕。模拟击键不是处理对话框的方式;这是如此的脆弱和容易出错,它会给我带来身体上的痛苦。冻结整个屏幕不是可接受的解决方案;Windows是一个多应用程序操作系统,用户正在运行或正在执行的不仅仅是您。这是一堆卡片,正等着下一阵风刮下来,一场飓风即将来临。另找一条路,谢谢。我已经遇到这样的建议了。我想先看看是否有更快更简单的方法来实现这一点。当我点击屏幕截图中的一个项目时会发生什么?还是按键盘上的键?如果你有一个顶级窗口,它的焦点是接收键盘事件,那么他是如何合成键盘输入,从而消除另一个窗口显示的对话框的呢?没有焦点的窗口不接收键盘事件。