2010-07-22 3 views
4

Можно ли отображать контекстное меню WPF на WinForms?Меню WPF на Winforms

Если да, то как мы можем это сделать?

+0

почему бы вам не показать WinForms контекстное меню на вашем приложении WinForms? –

+4

Потому что у меня есть форма в моем приложении, сделанное в Winform, давным-давно, но вся новая реализация в WPF, поэтому мне интересно, могу ли я повторно использовать существующее контекстное меню. –

ответ

0

Я не знаю, можно ли это сделать, но this article может помочь вам в правильном направлении. Как разработчик WPF, мне кажется странным смешивать winforms и wpf, но я вижу пример повторного использования.

2

Вы можете смешивать 2 технологии, используя WindowsFormsHost (WinForm внутри окна WPF) и ElementHost (WPF внутри окна WinForm).

Вы не столкнетесь с проблемой Airspace при добавлении WPF-меню в приложение Winform. Но вы будете, если будете создавать окна WPF с помощью Winform UserControls. У этого Blog post есть некоторые идеи по его решению, но это не очень.

3

ОК, так что я нашел ответ сам ... (я пытался дать 50 пунктов награду в, но я не думаю, что я могу наградить себя: P)

У нас есть много наследия WinForms ... формы ... все еще в нашем проекте на работе. И вот секретный код, который необходим для отображения контекстного меню WPF в проекте WinForms!

var myMenu = new System.Windows.Controls.ContextMenu(); 
myMenu.Items.Add("One"); 
myMenu.Items.Add("Two"); 
myMenu.Items.Add("Three"); 
myMenu.IsOpen = true; 

Tada !!! - Секретного кода не требуется ... вы можете написать этот код в приложении WPF или в приложении WinForms, и он работает так же.

И ваш ответ :)

+0

Убирайтесь из города, я смог наградить себя! –

Смежные вопросы