우리 고객 중 한 명은 다른 WPF 컨트롤과 함께 WPF ElementHost 컨테이너 내에 WinForms .NET 그리드 컨트롤 iGrid.NET (http://www.10tec.com/)을 호스팅합니다. WinForms 양식 내부의 WPF 호스트 내부에있는 WinForms 컨트롤처럼 이상하게 보일 수도 있지만, 다른 WPF 물건 (AvalonDock http://avalondock.codeplex.com/ 도킹 컨테이너) 때문에 선택의 여지가 없습니다.ElementHost에 중첩되어있는 경우 WinForms 컨트롤의 소유자 양식을 찾는 방법?
Form myTopLevelOwnerForm = fCurrentGrid.TopLevelControl as Form;
즉 :
문제는 우리의 .NET의 데이터 그리드 컨트롤의 인프라가 부모 윈폼 양식을 알 필요하지만, 우리가에 사용하는 다음과 같은 구성은 항상 이런 상황에서 null을 반환한다는 것입니다 이 목적을위한 표준 Control.TopLevelControl 속성은 null을 반환합니다.하지만 WPF 호스트의 경우에는 그렇게해야합니다.
질문 : 현재 폼의 코드에서 부모 폼을 알 수있는 다른 방법이 있습니까? 말하자면, WinAPI 핸들 또는 다른 네이티브 .NET memebr을 사용하는 것입니까?
죄송합니다. 그냥 내가 비슷한 문제가 회사에서 계속하고 싶었 : http://stackoverflow.com/questions/13825402/creating-a-form-from-a-winforms-control-hosted-within-wpf-owner-is- 설정되지 않음 - 지금까지 운이 없습니다. – doornail
@doornail, 이것에 대해 상기시켜 주셔서 감사합니다! 사실, 나는 내 프로젝트에서 괜찮은 해결 방법을 발견했다. 답을 참조하십시오. – TecMan