2010-07-22 55 views
4

是否可以在WinForms上顯示WPF上下文菜單?Winforms上的WPF菜單

如果是,我們該怎麼做?

+0

你爲什麼不在WinForms應用程序上顯示WinForms上下文菜單? – 2010-07-22 13:24:00

+4

由於我的應用程序在Winform時代之前完成了一個窗體,但所有新的實現都在WPF中,所以我想知道我是否可以重用現有的上下文菜單 – 2010-07-22 13:29:58

回答

0

我不知道它是否可以完成,但this article可能會幫助您指出正確的方向。作爲一名WPF開發人員,想要混合winforms和wpf似乎很奇怪,但我可以看到重用的情況。

2

您可以使用WindowsFormsHost(WinForm內部WPF窗口)和ElementHost(WinForm窗口內部的WPF)混合2種技術。

當您將WPF菜單添加到Winform應用程序中時,您不會遇到Airspace問題。但是,如果您使用Winform UserControls創建WPF窗口,您將會如此。這Blog post有解決它的一些想法,但它不漂亮。

3

好了,我發現自己的答案......(我試着給一個50點的賞金,但我不認爲我可以獎勵自己:P)

我們有很多遺留的WinForms ...表格...仍然在我們的項目中。這裏是在WinForms項目中顯示WPF上下文菜單所需的祕密代碼!

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

田田! - 沒有需要的祕密代碼...您可以在WPF應用程序或WinForms應用程序中編寫此代碼,並且它的工作原理相同。

還有你的答案:)

+0

出城,我能夠獎勵自己! – 2011-04-13 03:02:10