2010-08-03 6 views
17

단일 인스턴스 응용 프로그램을 만들었으며 사용자가 응용 프로그램을 여러 번 시작하면 이미 열린 창을 활성화하려고합니다. 이 잘 작동하지만 이미 열려있는 창이 다른 응용 프로그램 창 너머에 있다면, 나는 그것을 앞에 가져야합니다, 문제가 있습니다.WPF 창을 앞에 가져 오는 방법은 무엇입니까?

나는 window.Focus() 및 window.Show()를 시도했지만 둘 다 작동하지 않는 것 같습니다. 해결 방법은 내가 사용하는 ...

bool oldTopMost = window.Topmost; 
window.Topmost = true; 
window.Topmost = oldTopMost; 
window.Focus(); 

...이 일을하지만 아주 못 생겼어. 누구에게 더 좋은 해결책이 있습니까?

답변

30

대신 Window.Activate을 사용할 수

window.Activate(); 

SetForegroundWindow를 호출에 WPF의 equivelent입니다.

+1

Perfect! 감사. – HCL

+1

최소화 된 창을 복원하려면 다음을 사용하십시오.'if (myWindow.WindowState == WindowState.Minimized) myWindow.WindowState = WindowState.Normal;'또한 창의 최대화 상태를 유지하고 다시 정상으로 되돌리지 않습니다. – r41n

관련 문제