WPF 添加ACTIVEX 控件 ——System.Windows.Forms.AxHost+InvalidActiveXStateException异常

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF 添加ACTIVEX 控件 ——System.Windows.Forms.AxHost+InvalidActiveXStateException异常相关的知识,希望对你有一定的参考价值。

---恢复内容开始---

一、ACTIVEX及其相关概念

COM(Component Object Model,对象组件模型);
DCOM(Distributed COM,分布式对象组件模型);
CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构);
 
动态数据交换(Dynamic Data Exchange,DDE),解决了数据的更新,但数据格式仍是问题;
对象的链接与嵌入(Object Linking and Embedded,OLE),数据交换提高到“对象交换”;
ActiveX是指宽松定义的、基于COM的技术集合,而OLE仍然仅指复合文档;ActiveX和OLE的最大不同在于,OLE针对的是桌面上应用软件和文件之间的集成,而 ActiveX则以提供进一步的网络应用与用户交互为主。
 
二、WPF 加入ACtiveX 控件

  使用 WindowsFormsHost 元素可将 Windows Forms控件放置到 WPF 元素或页面中。

  若要在 Windows Forms控件或窗体中承载 WPF 元素,使用 ElementHost控件

1.添加引用 WindowsFormsIntegration ;
 
2.创建 WindowsFormsHost 对象

        System.Windows.Forms.Integration.WindowsFormsHost host = new System.Windows.Forms.Integration.WindowsFormsHost();

3.实例化Activex控件 、初始化控件、控件复值到host 

  txsl1 = new activex();

  host.Child = txsl1;

4.添加Host对象到WPF 窗体

      this.mainGrid.Children.Add(host);

---恢复内容结束---

以上是关于WPF 添加ACTIVEX 控件 ——System.Windows.Forms.AxHost+InvalidActiveXStateException异常的主要内容,如果未能解决你的问题,请参考以下文章

使用 Reg-Free-COM 时未发送到基于 WPF 的 ActiveX 控件(COM 互操作)的事件

如何开发ActiveX控件

如何将 ActiveX 控件挂钩到事件/更改到我的视图模型中?

关于WinCC V15.1使用ActiveX的ListBox控件时添加失败问题

winform 添加wpf 窗体怎么使用

您将使用哪种 C# 项目类型来重新开发 MFC C++ activex 控件?