2015-10-13 60 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同意 - 以后可能会导致麻烦。懒惰的命名约定。更新了答案。 –