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

前端之家收集整理的这篇文章主要介绍了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

猜你在找的C#相关文章