2011-02-03 3 views
3

WPF 사용자 컨트롤 만 만들 수 있도록 비 WPF 앱으로 작업하고 있습니다. 이 문제를 해결하기 위해 그냥 내 창을 usercontrols로 만든 다음 WPF 창을 시뮬레이트하기 위해 wpf usercontrol (ElementHost 사용)을 호스팅하기 위해 일반적인 winform을 만들었습니다.ElementHost - 창을 다시 열 때 공백이 나타납니다.

모든 것이 내 dev 컴퓨터 (WinXP VM)에서 잘 작동하지만 클라이언트 컴퓨터 (VM 및 물리적 모두 Windows 7)에서는 창이 한 번 열리고 제대로 작동합니다. 그러나 그들을 닫은 다음 다시 열면 빈 흰색이됩니다. 창문은 닫히고 닫히고 나면 모두 닫힙니다 (내가 메모리에 남겨 두었더라도 똑같은 일이 일어났습니다). 클라이언트는 응용 프로그램을 닫고 다시 시작하여 창을 다시 표시해야합니다.

새로 고침 호출을 추가하려고했지만 elementhost를 사용하지 않는 것은 작동하지만 아무 것도 작동하지 않습니다. 어떤 아이디어? 모든 창에서 발생합니다.

+0

문제를 재현하는 코드입니다. –

+0

별로 중요하지 않은데, 그냥 ElementHost.Child = new WPFUserControl(); 앞에서 말했듯이 모든 사용자 컨트롤에서이 문제가 있지만 Windows 7에서만 발생합니다. –

답변

3

아직 답변을 게시하지 않아 죄송합니다. 아직 댓글을 달 권한이 없습니다. 그러나 나는 몇 가지 질문이나 조사 할 방향이 있습니다.

디버거를 연결하여 어떤 일이 일어나는지 보았습니까? 그것은 여전히 ​​입력 이벤트를 얻고 있습니까, 아니면 다시 그리기 이벤트입니까, 아니면 매달렸습니까? 창을 다시 열면 WPF 사용자 컨트롤이로드됩니까? 오, 그리고 첫 번째 기회 예외를 깨뜨릴 수 있는지 확인하십시오. WPF + CLR 문제 일 수도 있고, 다시로드 할 기회조차 없을 수도 있습니다.

Spy ++는 무슨 일이 일어나고 있는지 알려주는 하위 창에 대해 아무 말도하지 않습니까?

아, 승 7 박스에서만 발생합니까, 아니면 다른 곳에서도 재생됩니까?

또 다른 것은 단순한 사용자 정의 컨트롤을 만들고 동일한 작업을 수행하면 어떻게됩니까? 재현 되나요?

새로운 창보다는 페이지의 콘텐츠 일 뿐인가?

다른 누군가가이 문제를 겪고 있는지 검색하는 동안 방금 찾은이 기사와 같은 간단한 것을 사용해보십시오. http://www.switchonthecode.com/tutorials/wpf-tutorial-using-wpf-in-winforms

+0

여기에 interchop에 대한 gotchas에 대한 이전 기사가 있습니다. 그들이 처분하는 부분이 문제 일지 궁금하다. http://blogs.msdn.com/b/scoberry/archive/2006/09/01/735844.aspx –

+0

이 페이지에는 승 7에 대한 문제점도 언급되어 있습니다. WPF 컨트롤이 별도의 dll. http://myramserialize.blogspot.com/2010/03/winformswpf-interop-elementhost-not.html –

+0

한 번 더 찾아서이 문제에 대한 여러분의 의견을 기다립니다. 나는 이것에 대해 당신의 창문을 보았을 것입니다. 아마도 이것은 스크롤바에 관한 것이지만 문제에 대한 방법으로 생각 나게합니다 : http://social.msdn.microsoft.com/Forums/en-US/wpf/스레드/6f88715b-b9ca-4d4f-974b-97b334d26347/ –

관련 문제