2009-06-16 5 views
12

모달이되도록 .ShowDialog()를 사용하여 새 창을 시작하는 MainApplication Window가 있습니다.기본 응용 프로그램 창을 클릭 할 때 모달 WPF 창을 초점 맞추는 방법

UploadWindow uploadWindow = new UploadWindow(); 
uploadWindow.ShowDialog(); 

이제 사용자는이 창을 열어두고 다른 창에서는 손실 될 수 있습니다. MainApplication을 클릭하면 오류음과 같은 경고음이 발생하고 상호 작용할 수 없으므로 모달 창이 예상대로 제대로 차단되지 않습니다. 모달 창에 포커스가있는 경우 모달 창에 포커스가 있으면 사용자에게 표시됩니다. 아직 열려 있습니다.

현재 MainApplication 창이 잠겨있는 것처럼 보입니다. 누군가가 같은 문제가있을 경우 모든 경우

나는 문제가
var uploadWindow = new UploadWindow(); 
uploadWindow.Owner = this; 
uploadWindow.ShowDialog(); 

답변

24

대화 상자의 소유자를 설정하십시오 위의 솔루션을 시도하고 여전히 동일한 문제에 직면 다음은 테스트 및 검증 된 솔루션입니다 xaml 창으로 이동하여 추가

ResizeM ode = "NoResize"

+0

내가 찾고있는 것. –

+2

소유자 속성이 기본적으로 설정되어 있지 않은 것은 다소 이상한 일입니다. 팁을 가져 주셔서 감사합니다, 언젠가는 유용 할 수 있습니다. – Oskar

+0

←이 부분. 진심으로, 당신이 '이'라는 뜻은 무엇입니까? –

2

, 나는이를 사용할 수 없습니다, 당신은

Window.GetWindow(this) 
0

를 사용할 수 있습니다

+0

그 때문에 기본 모달 대화 상자가 집중됩니까? –

+0

그래, 나는 똑같은 문제에 직면했지만 모든 제안 위에 시도했지만 나를 위해 일할 수 없어 단순히 ResizeMode 및 objForm.ShowDialog(); 일한 –

1

MVVM을 사용하고 있으므로 GUI에서 코드를 생성하지 않습니다. 나는 이것을 사용했다.

var uploadWindow = new UploadWindow(); 
uploadWindow.Owner = Application.Current.MainWindow; 
uploadWindow.ShowDialog(); 
관련 문제