c# – 从WinForms窗体显示WPF窗口是绝对安全的吗?

我想从 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();
    }
}

该表格从Main()作为正常的Winforms窗体启动:

Application.Run(new WinFormsForm1());

这似乎对我来说太容易成为现实.这有什么缺点吗?这是安全吗?

解决方法

它有一个严重的缺点:无模式WPF窗口将为 not get keyboard input.

显示WPF窗口之前,需要添加EnableModelessKeyboardInterop方法调用

WpfWindow1 w = new WpfWindow1();
  System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(w);
  w.Show();

ElementHost resides in WindowsFormsIntegration.dll.

进一步阅读:http://msdn.microsoft.com/en-us/library/aa348549.aspx

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...