ix++) _comBox.Items.Add("abcdefg" + ix.ToString()); } } 步骤3:添加相关引用 步骤4:在WinForm面板上添加ElementHost 控件(工具箱中) 步骤5:在刚刚的ElementHost中的Child属性中添加刚刚生成的WPF控件(ElementHost是WPF控件的载体) public partial class Form1 : Form { private ElementHost _elemHost = new ElementHost(); // WPF载体 private ComBoBoxButton
混合使用策略在实际项目中,也可以考虑混合使用两种技术:**Winform宿主WPF**:通过ElementHost在Winform中嵌入WPF控件,逐步迁移界面:```csharpvar elementHost = new ElementHost();elementHost.Dock = DockStyle.Fill;var wpfControl = new MyWpfControl();elementHost.Child = wpfControl;this.Controls.Add(elementHost);```**WPF宿主Winform**:通过WindowsFormsHost在WPF中嵌入Winform控件,复用已有组件
private void userControl_FormClose(object sender, EventArgs e) { this.Close(); } 改成用这个方法, 把elementHost1 private void UserControl_FormClose(object sender, EventArgs e) { this.elementHost1
使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) - walterlv 继续调查,在搜索中,看到类似 ElementHost HwndSource 这样的关键词,以为是需要用这些将 ElementHost Is it possible to host WPF Core (.NET 5.0) content in an MFC application?
System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(winWPF); winWPF.Show( 唐宋元明清2188 - 博客园 解决Winform中弹出WPF窗体不能在文本框中输入的问题 - 飞鹰的专栏 - CSDN博客 Windows 窗体和 WPF 互操作性输入 - 小而美 - CSDN博客 ElementHost.EnableModelessKeyboardInterop
System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(winWPF); winWPF.Show(
WPF互操作性,将 “ElementHost”控件拖拽到右侧Panel中,命名为controlHost,并设置 Dock 属性为 Fill。