我正在构建一个小型应用程序,它对另一个软件的程序文件执行更新,然后启动该软件。启动应用程序后,会在第二个 GUI 线程中显示启动窗口,而在主线程上构建并显示第二个应用程序的主窗口:
var shell = (Shell) Shell;
Application.Current.MainWindow = shell;
shell.Show();
显示第二个应用程序的外壳后,关闭第一个窗口。一切正常,除了第二个窗口的外壳在* 其他窗口下弹出。即:我从资源管理器启动启动器应用程序,启动器窗口显示在资源管理器窗口的顶部。启动器窗口关闭,主应用程序窗口出现在资源管理器窗口下:
我试过了:
var shell = (Shell) Shell;
Application.Current.MainWindow = shell;
shell.Topmost = true;
shell.Show();
shell.InjectInitialViews();
这解决了这个问题,但是即使我单击任务栏中的另一个应用程序,我也无法在外壳上方显示其他窗口。
var shell = (Shell) Shell;
Application.Current.MainWindow = shell;
shell.Topmost = true;
shell.Show();
shell.InjectInitialViews();
shell.Topmost = false;
什么都不做......实现这一目标的正确方法是什么?