2015-10-13 34 views
0

我寫這個方法不起作用查看WPF在Windows的形式窗體C#

UserControl us = new UserControl(); 
us.Show(); 
+0

我只是再讀一遍這個問題的標題:你想混合使用WPF和Windows窗體技術嗎?如果是的話,UserControl是Windows窗體技術,Windows是Windows窗體,還是相反?如果不是,則標題應該更改 –

+0

請您回答一下WPF/Windows窗體,以便可以根據需要更新帖子的標題。問候 –

回答

1

你的控制必須位於一個窗口

Window Window = new Window(); 
// window has a single content 
// here it is usercontrol1 
// to have many controls, use an intermediary like Grid or Canvas or any Panel derived class 
window.Content = usercontrol1; 

在窗口被打開。

// modeless (non blocking) opening 
window.Show(); 

// modal (blocking) opening 
window.Showdialog(); 

問候

+0

可能更容易將UserControl更改爲一個窗口(請參閱我的答案)比深層包裝UserControl兩層(WinForm> ElementHost> UserControl)更容易。更好地接觸孩子。 –

1

不能顯示UserControl。將UserControl更改爲Window

XAML:

<Window x:Class="WindowsFormsApplication1.MyWindow" 

,而不是

<UserControl x:Class="WindowsFormsApplication1.UserControl1" 

,並在您的代碼隱藏,更改

public partial class UserControl1 : UserControl 

public partial class MyWindow: Window 

現在您可以致電new MyWindow().Show();。主要好處是您不會通過在其中添加Windows窗體對話框和ElementHost以及UserControl來使應用程序負擔過重。

這樣,您還可以從調用Windows窗體類訪問UserControl/Window的子項。

+1

但UserControl不是一個窗口。不要用狗的名字命名貓!我同意,你可以忘記Usercontrol並直接創建一個窗口 –

+0

@EmmanuelDURIN同意 - 以後可能會導致麻煩。懶惰的命名約定。更新了答案。 –