WindowsFormsHost를 사용하여 일부 WinForms 또는 ActiveX 컨트롤을 활용하는 WPF UserControl을 만듭니다.WPForm의 WinForm/ActiveX (WindowsFormsHost에서 호스팅되는) 컨트롤의 컨텍스트 메뉴에 컨텍스트 메뉴 항목을 추가하는 방법
<WindowsFormsHost Name="windowsFormsHost1" Height="Auto" MinHeight="400" MinWidth="400">
<viewer:ReportViewer x:Name="viewerInstance" />
</WindowsFormsHost>
의 ReportViewer는 Microsoft.Reporting.WinForms에서 찾을 수있다 : 예를 들어, UC에서 우리는 코드가 있습니다.
다른 UC에서 코드는 다음과 같다 다음 AxPivotTable이 AxMicrosoft.Office.Interop.Owc11에 모두의 ReportViewer와 AxPivotTable 컨트롤을 찾을 수 있습니다
<WindowsFormsHost Name="windowsFormsHost1" Height="Auto" MinHeight="400" MinWidth="400">
<AxOWC:AxPivotTable x:Name="pivotTable" />
</WindowsFormsHost>
에는 자신의 상황에 맞는 메뉴를 많은 기능을 사용합니다. 나는 그들을 지키고 싶다. 그러나 나는 또한 새로운 기능을 추가 할 필요가있다. 다른 말로하면 기본 컨텍스트 메뉴가 포함 된 향상된 컨텍스트 메뉴와 다른 부분 인 사용자 지정된 메뉴 항목을 디자인하려고합니다.
여기에 문제가 있습니다. 사용자 정의 된 컨텍스트 메뉴 항목을 추가 할 위치를 알 수 없습니다. WindowsFormsHost에 컨텍스트 메뉴 개체를 추가하려고했습니다. 그러나 결과적으로이 맞춤 메뉴는 전혀 표시되지 않습니다. WindowsFormsHost.ContextMenu.IsOpen을 true로 설정하고 이번에는 사용자 정의 된 메뉴가 컨트롤의 기본 컨텍스트 메뉴를 섀도 잉합니다.
또한 코드 숨김에서 메뉴 항목을 추가하려고합니다. 예를 들어 ReportViewer는 ContextMenu라는 멤버가있는 WindowsForms (WPF 어셈블리 아님)에서 파생됩니다. 그러나 viewInstance.ContextMenu.MenuItems를 확인할 때 실제로이 숫자에 기본 컨텍스트 메뉴가 없음을 의미하는 0 카운트 컬렉션이 있음을 알 수 있습니다. 그렇다면 어떻게 기본 컨텍스트 메뉴를 찾고 사용자 정의 메뉴 항목을 추가 할 수 있습니까? (당신이 D3DImage를 사용하지 않는 경우)
당신은이 상황에 맞는 메뉴를 확장 할 수 없습니다, 그들은 이러한 컨트롤에 대한 코드 내부에 구운 있습니다. –