WinForm으로 시작했지만 현재는 UI가있는 WPF 창을 사용하는 응용 프로그램을 만들고 있습니다. 상호 작용은 모두 아름답게 작동하지만 WPF 창을 처음 표시 할 때는 표시하는 데 오랜 시간이 걸립니다 (약 1-3 초). 앱이 추락했는지 (콘텐츠가 표시 될 때까지) 오랫동안 궁금해합니다. 같은 창을 두 번째로 호출 할 때 빠르게 발생합니다. 나는 그들에게 처음으로 빨리 올 필요가있다.WPF는 WinForm 응용 프로그램에서 사전 컴파일 된 리소스입니까?
리소스 폴더에 XAML로있는 스타일과 컨트롤 템플릿을 사용하고 있습니다. WPF 용 XAML 창에서 Windows 리소스 사전에 병합합니다. 이러한 작업 (VS 2010)의 빌드 작업을 "리소스"로 설정해야합니다. 가급적 쉽게 유지 보수를 위해 별도의 파일에 보관하고 싶습니다. 빌드 동작이 "페이지"인 경우 XAML이 미리 컴파일되어 더 빨리로드되어야하지만 페이지로 설정하면 리소스 사전에 병합 할 수 없습니다. 그 주위에 방법이 있습니까?
저는 WPF의이 부분에서 상당히 새롭고 지금까지 인터넷 검색이 성공적이지 않았습니다.
명확해야 : WinForms에 포함 된 WPF 컨트롤에 대해 말하는 것이 아닙니다. WinForm 컨텍스트에서 생성 된 완전히 별도의 WPF 창에 대해 이야기하고 있습니다.
전체 앱 또는 적어도 모든 XAML (모두 정적이며 동적 XAML 없음)을 사전 컴파일하는 방법이 있습니까?
미리 감사드립니다.
편집 : UI는 무겁지 않습니다. 해당 버튼에는 5 ~ 20 개의 버튼과 일반 컨테이너 (기본적으로 1 또는 2 개의 스택 패널이있는 그리드)가 있습니다.
업데이트 : - WPF 창 부하에 영향을 나는 "NGEN이 APPNAME를 설치하지"와 프리 컴파일을 시도했다.
모든 리소스와 템플릿을 window.xaml에 포함 시켰습니다. 효과가 없습니다.
http://www.codeproject.com/KB/dotnet/pre_JIT.aspx
이 (나는 'ittay 오빌'에 의해 제안 된 개선을 사용) : 내가 여기 응용 프로그램의 부하에 따라 사전 jitting에 대한이 정말 흥미로운 기사를 발견 (window.xaml은 사전 컴파일입니다)-
다시
- : WPF 창 부하에 영향 ...
부하 시간은 단지 첫 번째로드에 변경되지 않습니다하지만 크게 모든 연속에 감소 부하 (20ms 이하의 부하).
도대체 무슨 일이 벌어지고있는거야?
그래, 나는 그것에 대해 생각했지만, 성가신 것처럼 보이기 때문에 지금까지 그것에 대해 생각하지 않았다. 내가 그럴만 한 가치가 있다는 것을 안다면 나는 그것을 할 것이다. 당신 (또는 다른 사람)이 그 접근법을 시도하고 눈에 띄는 성능 향상을 얻었습니까? – Harald
xaml이 비동기 적으로로드 될 때까지로드 대화 상자를 표시하여 걸려있는 것처럼 보이지 않습니다. –