노무현 전 대통령 서거 - 삼가 고인의 명복을 빕니다
이번에는 WinForm에서 WPF Dialog를 띠우는 방법이다.  WPF에서 Window UserContlor을 호스팅해서 사용하게 되었다. 하지만 문제가 생긴것은 호스팅되어 사용하려고 한 Window UserContlor컨트롤에서 Dialog를 호출할때 생겼다.  결론만 말하자면 WPF에서 Form(WindowsForm)을 그냥 생성해서 부르는 꼴이 되어버려서 호출할때 오류를 발생 시켰다.


그래서 역으로 생각해 WindowsForm에서 WPF(Windows)를 호출하는 방법을 택했다.
※ 문제는의 원인은 WindowsForm과 WPF는 관리되는 방식이 틀리기 때문이다.




WindowInteropHelper Class(MSDN)
   - WPF(Windows Presentation Foundation)와 Win32 코드 사이의 상호 운용을 지원하는 클레스

< 링크 >




WindowInteropHelper wih = new WindowInteropHelper(myDialog);
wih.Owner = ownerHwnd;   // ownerHwnd는 WinForm의 핸들값을 주는 코와 대체한다.
                                       //  ex) this.Handle; 
myDialog.ShowDialog();   

myDialog는 당연히 WPF로 생성한 객체이다.



- 참고 -
WPF로 객체를 생성하려고 변수 선언을 했을떄 어셈블리 참조가 되어 있지 않다고 에러가 났다. 
그냥 WPF에서 참조 되어있는 모든것을 똑같이 WinForm에서 참조 시켜서 해결했다. - 왼지 미방책인 느낌
Trackback 0 | Comment 0

고독한개발자's Blog is powered by Daum & tistory