Мы используем элементы управления ActiveX или формы Windows, которые не имеют эквивалентов WPF, поэтому, естественно, мы используем WindowsFormsHost для размещения этих элементов управления. Обычно мы делаем из него UserControl с некоторыми общими элементами управления, такими как кнопка, для реализации общих функций. Один фрагмент кода xaml выглядит примерно так:
<WindowsFormsHost Name="windowsFormsHost1" >
<WindowsFormsHost.ContextMenu>
<ContextMenu>
<MenuItem Header="_Test1" />
</ContextMenu>
</WindowsFormsHost.ContextMenu>
<AxOWC:AxPivotTable x:Name="pivotTable" />
</WindowsFormsHost>
....
AxPivotTable - это элемент управления OWC (офисный веб-компонент). В другом UserControl мы добавляем ReportViewer внутри WindowsFormsHost. Обратите внимание, что обычно AxPivotTable или ReportViewer имеют свое контекстное меню по умолчанию даже без добавленного мной элемента ContextMenu.
Пока что мое настроенное ContextMenu еще не отображается (по-прежнему отображается значение по умолчанию). Благодаря этому вопросу, я понял, что мне все еще нужно зафиксировать событие опускания мыши в код программной части и набор
windowsFormsHost1.ContextMenu.IsOpen = True
чтобы показать контекстное меню (хотя и странно).
Теперь моя проблема в том, что здесь сейчас только это Контекстное меню Test1. Контекстное меню по умолчанию больше не отображается. Как я уже упоминал, мы хотим добавить настраиваемые поверх контекстных меню по умолчанию.
windowsFormsHost1
, чтобы получитьContextMenu
объект? чтобы ты мог сделать_yourContextMenu_.Items.Add(newMenuItem)
- person WiiMaxx   schedule 14.03.2013