다른 소프트웨어의 프로그램 파일을 업데이트 한 다음이 소프트웨어를 실행하는 작은 응용 프로그램을 만들고 있습니다. 응용 프로그램을 시작한 후 스플래시 창이 두 번째 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;
아무 것도 안 해 ... 이것을 달성하는 적절한 방법은 무엇입니까?
Mike와 Sheridan의 답변 덕분에 생성 된 스레드에서 창을 활성화하는 솔루션을 찾았습니다. 그래서
var shell = (Shell) Shell;
Application.Current.MainWindow = shell;
shell.Topmost = true;
shell.Show();
shell.InjectInitialViews();
shell.Activate();
트릭을 수행합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다