【发布时间】:2021-05-05 13:21:26
【问题描述】:
我有一个小型 WPF 应用程序,比如 SubWPF ,它最初显示一个允许用户浏览文件的主窗口。我在单击另一个应用程序(例如 MainWPF)的按钮时启动此 wpf 应用程序。简而言之,当我点击“Launch Sub”时,SubWPF.exe 通过 Process 类从 MainWPF 启动,如下所示。
Process p = new Process();
p.StartInfo.FileName = "SubWPF.exe";
p.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
p.StartInfo.UseShellExecute = false;
p.StartInfo.Verb = "runas";
p.Start();
问题出在后台我有 MainWPF 窗口。我需要 subwpf 始终位于顶部并防止用户单击 mainwpf 的背景按钮。准确地说,需要实现 showdialog() 的行为。我不能在我的 subwpf 中使用TopMost=true,因为一旦用户在主窗口中选择了一个文件,这个窗口就会关闭并显示另一个显示文件内容的窗口。设置TopMost=true 不允许我关闭文件选择窗口。
【问题讨论】:
-
将 MainWPF 的 IsHitTestVisible 设置为 false 并恢复 byProcess.Exited 事件
-
还有其他选择吗?由于 MainWPF 是另一个团队实现的主要应用程序,我很难对其进行更改。