프리즘의 MefBootstrapper를 사용하여 WPF 응용 프로그램을 초기화했습니다.이 프로세스의 일부로 쉘 창이 초기화됩니다.WPF 응용 프로그램 로그인 창이 없습니다.
MefBootstrapper의 Run() 메소드를 실행 한 후 서버에 연결하는 로그인 윈도우를 표시하고 성공적인 연결의 경우 쉘이 메인 UI 스레드에서로드됩니다.
이 로그인 창은 새로운 전용 UI 스레드에서 실행 중이며,이 프로세스 (서버에 대한 연결, 특히 셸로드)에서 진행률 막대가 고정되지 않도록합니다.
안타깝게도 로그인 창은 상단에 표시되지 않고 초점이 맞지 않습니다 (Activate(), TopMost = true, Focus()).
//UI mode - a new UI thread is initialized
var uiThread = new Thread(() =>
{
var loginWindow = new LoginWindow();
loginWindow.Show();
loginWindow.Activate();
loginWindow.Topmost = true;
loginWindow.Topmost = false;
loginWindow.Focus();
System.Windows.Threading.Dispatcher.Run();
});
uiThread.SetApartmentState(ApartmentState.STA);
uiThread.IsBackground = true;
uiThread.Start();
어떻게이 문제를 해결할 수 있습니까?
창이 이미 초기화 된 후 TopMost 플래그를 설정하고있을 가능성이 높습니다. 귀하의 질문에 관련 코드 부분을 보여주십시오. – NVM
창이 표시되기 전에 TopMost를 true로 설정하면 창에 포커스가 없습니다. –
다음 질문을하지 말아야합니다 : 맨 위 창에 포커스를 설정하는 방법? 당신은 그 문제를 혼란스럽게하고 있습니다. – NVM