Mar*_*rek 11 c# wpf interop .net-3.5 winforms
我想从Windows窗体应用程序(.NET 3.5)中显示一个WPF窗口.
此代码似乎在示例项目中没有任何问题:
public partial class WinFormsForm1 : Form
{
public WinFormsForm1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
WpfWindow1 w = new WpfWindow1();
w.Show();
}
}
Run Code Online (Sandbox Code Playgroud)
表单从Main()正常的Winforms表单开始:
Application.Run(new WinFormsForm1());
Run Code Online (Sandbox Code Playgroud)
在我看来这太容易成为现实.这有什么缺点吗?这样做安全吗?
Mar*_*rek 15
它有一个严重的缺点:无模式WPF窗口不会得到键盘输入.
所述EnableModelessKeyboardInterop方法调用需要示出了WPF窗口之前加入:
WpfWindow1 w = new WpfWindow1();
System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(w);
w.Show();
Run Code Online (Sandbox Code Playgroud)
ElementHost 驻留在WindowsFormsIntegration.dll中.
进一步阅读:http://msdn.microsoft.com/en-us/library/aa348549.aspx
| 归档时间: |
|
| 查看次数: |
4518 次 |
| 最近记录: |