2017-03-09 4 views
0

PRISM을 사용하는 WPF 응용 프로그램이 있습니다. 로그인 화면이 있고 많은 항목이있는 TileListView가 포함 된 새보기에 successfuly 로깅이 나타납니다. 컨트롤은 많은 것들을 계산해야하기 때문에 렌더링하는데 10 초 이상이 걸립니다. WPF에서의 렌더링은 UI 스레드에서 이루어지기 때문에이 모든 것은 표준 비헤이비어에 의해 UI 스레드를 사용합니다. WaitControl을 회 전자와 같이 표시하거나 별도의 창이나 이와 비슷한 간단한 애니메이션을 표시 할 수 있습니까? 이제 애니메이션이 멈 추면 UI 스레드에서 컨트롤이 렌더링됩니다.WPF에서 UIElement 렌더링 중 대기 화면

+0

백그라운드 스레드에서 계산을 실행 한 후에 할당 된 DependencyProperties에 UI 요소가 바인딩되도록 리팩토링 할 수 있습니까? UI 스레드에서 너무 많이 발생하는 문제가 될 수있는 것처럼 보입니다. –

+0

컨트롤은 Telerik에서이므로 수정할 수 없습니다./ –

+0

알겠습니다. 동일한 창에서 스피너가 작동하지 않을 것입니다. 스핀 애니메이션이 너무 느려지는 UI 스레드에서 발생하므로 잘 회전하지 않습니다. 하지만 오버레이 할 다른 창을 만드는 아이디어가 효과적 일 수 있습니다. 컨트롤로드가 완료되면 알 수 있습니다. 컨트롤이 계산하는 내용을 조금 더 설명해 주시겠습니까? 그게 우리가 다른 해결책을 찾는데 도움이 될지도 모른다. –

답변

1

별도의 스레드에서 실행되는 새 창을 만들 수 있습니다. 이렇게하는 방법에 대한 예는 다음 블로그 게시물을 참조하십시오.

는 별도의 스레드에서 WPF 창을 시작 : http://reedcopsey.com/2011/11/28/launching-a-wpf-window-in-a-separate-thread-part-1/

그런 다음 당신은 당신이 자격 증명을 확인하고 당신의 무거운 렌더링하기 전에 시작됩니다 한 직후 창을 표시이 스레드를 시작합니다.

이것은 아마도 당신이 할 수있는 최선의 일이며 구현하기도 쉽습니다.

+0

정확히 내가 필요한 것, 정말 고마워요. –

0

SplashScreen을 사용하면 백그라운드 프로세스가 완료 될 때까지 표시 할 수 있습니다. 참고 자료 Splash Screen in WPF

+0

이것은 내 문제를 해결하지 못합니다. 제 질문을 읽어보십시오. –