C# 从WinForms窗体显示WPF窗口是否绝对安全?
我想从windows窗体应用程序(.NET 3.5)显示WPF窗口 在示例项目中,此代码似乎可以正常工作:C# 从WinForms窗体显示WPF窗口是否绝对安全?,c#,wpf,winforms,.net-3.5,interop,C#,Wpf,Winforms,.net 3.5,Interop,我想从windows窗体应用程序(.NET 3.5)显示WPF窗口 在示例项目中,此代码似乎可以正常工作: public partial class WinFormsForm1 : Form { public WinFormsForm1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { WpfWindow1 w = new W
public partial class WinFormsForm1 : Form
{
public WinFormsForm1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
WpfWindow1 w = new WpfWindow1();
w.Show();
}
}
该表单作为普通Winforms表单从Main()
启动:
Application.Run(new WinFormsForm1());
在我看来,这太容易了,不可能是真的。这有什么缺点吗?这样做安全吗?其实很简单。我想不出这样做有什么坏处。它有一个严重的缺点:无模式的WPF窗口会 在显示WPF窗口之前,需要添加
enableModelesKeyBoardInTerop
方法调用:
WpfWindow1 w = new WpfWindow1();
System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(w);
w.Show();
ElementHost
进一步阅读:底线:它是。
我们有一个结合了WPF和winforms的非常繁重的应用程序:windows、用户控件、模态对话框,你可以说。。。而且它在医疗市场上起作用。
我们已经进入了一些黑暗的角落,一个是臭名昭著的EnableModelsKeyBoardInterop,另一个是让WPF窗口成为Winforms窗口的子窗口,您可以阅读它