2014-09-21 8 views
1

사용하여 모달 대화하기 전에 호출 될 때 손실, 호출 : 그 대화 상자 내부초점 IPleaseWaitService가, 내가 Catel에서 모달 대화 상자를해야합니까 요약 Catel

_uiVisualizerService.ShowDialog(viewModel) 

, 나는 대기 서비스를 보여주는 긴 과정을 :

_pleasewaitservice.Show(); 
// HARD WORK here 
_pleasewaitservice.Hide(); 

그리고 다른 모달 대화 상자를 호출합니다. 그것은 노력을합니다 (pleasewaitservice가 표시 될 때), 두 번째 모달 대화 상자가 기본 응용 프로그램 뒤에 표시됩니다, 그래서 초점을 맞출 수 없습니다 일을하는 동안

_uiVisualizerService.ShowDialog(configureViewModel) 

그러나, 나는 응용 프로그램의 외부 을 클릭 창은 뒤에 있기 때문에 모달입니다. 작업 킬러에서 앱을 닫아야합니다.

신중하게 확인한 후 원산지가 pleaseWaitService임을 알게되었습니다. 표시하지 않으면 두 번째 모달 대화 상자가 항상 올바르게 표시됩니다.

해결 방법에 대한 힌트가있는 사람이 있습니까? 나는 어떤 창에서든 포커스를 설정하는 방법에 대해 검색 중이었지만 아무것도 찾지 못했습니다.

감사

감사

사울 히달고을.

+0

을 나는 비슷한 문제가 있습니다. 차이점은 내 창은 계속 표시되지만 클릭하면 아무 것도 표시되지 않는다는 것입니다. 창과 상호 작용하기 전에 먼저 작업 표시 줄의 응용 프로그램을 클릭해야합니다. 문제를 해결하는 데 운이 좋았습니까? – pjdupreez

+0

안녕하세요, 아니요,이 기능을 제거했습니다 ... –

답변

0

당신은 윈도우의 코드 숨김 내부의 BringWindowToTop 확장 방법을 시도 할 수 있습니다 :

https://github.com/Catel/Catel/blob/46fcc69575e533eb9e02669ebaa2246894dc98d8/src/Catel.MVVM/Catel.MVVM.Shared/Windows/Extensions/WindowExtensions.cs#L237

+0

안녕하세요 @ geert-van-horrik 생성자, OnLoaded, OnLostFocus, EndInit, OnViewModelChanged 및 OnPropertyChanged하지만 다음과 같은 방법으로 시도해 보았습니다. 일하지 마라. 다음과 같은 방식으로 사용하고 있습니다. WindowExtensions.BringWindowToTop (this); 내가 무엇이 누락 되었습니까? Window가로드되었다는 것을 알기 때문에 Main Application의 뒤쪽으로 이동합니다. –