2009-07-10 1 views
2

이 상황이 발생했습니다. (.net 3.5)Excel 및 WPF 모달 형식

OleAutomation 및 Office Interop을 사용하여 도구 모음의 단추에 대한 Excel, 도구 모음 및 단추 처리기를 만드는 Winform 응용 프로그램. 은 "엑셀"창으로 설정되어

form.ShowDialog(new ExcelHwndWrapper(objExcelApplication.HWND)) 

그리고 모달 폼의 "소유자"

이제 우리는 방법 (2.0의 WinForm) 사용자 모달 창을 보여줍니다 몇 가지 기능을 가지고있다.

이제 새로운 기능에 대한 레이아웃 요구 사항으로 인해 Winforms 대신 WPF Window를 만들고 싶습니다.

"이상"WPF ModalDialog를 표시하는 방법이 있습니까?

winform을 통해 "이상"WPF ModalDialog를 보여 주지만 뭔가 이상을 발견했습니다.

감사합니다.

+1

엑셀 윈도우는 여전히 interop 콘텐츠가 포함 된 WPF 창입니까? 그냥 Window.ShowDialog()를 호출 할 수 있어야합니다. 그렇습니까? –

답변

2

VSTO 및 Office 2007을 사용할 때 WPF Windows를 모달 대화 상자로 사용하는 데 어려움이있었습니다. Winforms Form을 만들고 그 안쪽에 ElementHost 컨트롤을 둡니다. 그 안에 WPF 컨텐츠를 넣는 것이 훨씬 더 효과적이었습니다.

Winforms 래퍼없이 WPF Windows를 사용했을 때 키보드 입력을 제대로 잡는 데 문제가 발생했습니다.

전체 대화 상자를 채우기 위해 ElementHost 스트레치를 만들면 WPF 창이있는 것처럼 보입니다.