2010-06-03 2 views
5

3 개의 WPF 컨트롤이있는 요소 호스트가 있습니다. 요소 호스트를 winform에 배치합니다. 내 응용 프로그램이 올라 오면 요소 호스트에 몇 초가 걸리고 winform이 빈 화면으로 표시됩니다.winforms의 요소 호스트로드 시간 문제

해결 방법? 어떤 아이디어라도 감사합니다. 기본적으로 응용 프로그램이 올라올 때보기 흉한 것처럼 빈 화면을 표시하고 싶지 않습니다.

답변

1

이것은 정말 이상하게 보입니다. 이전에 ElementHost를 사용했고 하위 컨트롤을로드하는 데 심각한 지연이 없음을 알았습니다.

컨트롤을 단 하나의 일반 TextBox 컨트롤로 바꾸면 문제를 격리하는 데 도움이됩니다. 로드하는 데 얼마나 걸립니까?

제 생각에는 컨트롤 로딩을 완료하고 지연시키는 데 오랜 시간이 걸리는 제어 논리에 뭔가가 있다는 것입니다. 그것이 무엇인지 알아 내서 속도를 높이거나 프로세싱을 비동기로 만들려면 (Reactive Extensions 사용을 고려하십시오) 적어도 검은 색 화면을 제거하십시오. 프로파일 러 (Visual Studio 또는 ANTS)는이를 축소하는 데 큰 도움이됩니다.

1

당신은

단순히 하나 또는 두 개의 요소 호스트와 새로운 창을 만들 (:)이 단지 속임수) 응용 프로그램이 시작 닫고 자녀의 WPF를 추가 탑재 모델 창로드 &하여 로딩 시간을 단축 할 수 있습니다 통제 수단. 논리를 구현하거나 속성을 설정할 필요가 없습니다. 자식 컨트롤을 추가하기 만하면됩니다.

그런 다음 응용 프로그램이 시작되면 모델 창이로드되고 닫힙니다 (화면 경계에서로드 위치를 멀리 설정). (원한다면 원래 창도 사용할 수 있습니다.)

그러면 창이 정상적으로 열립니다.