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

标签 c# wpf events com-interop regfreecom

我有一个基于 WPF 的 ActiveX 控件(COM 互操作)。我可以通过注册控件来正确使用它。当我尝试 Reg-Free-COM(使用 list 文件)时,控件似乎被激活,但事件(例如鼠标单击、RequestBringIntoView 等)没有响应。有趣的是,双击和 Tab 键有效。

我读了这篇文章http://blogs.msdn.com/karstenj/archive/2006/10/09/activex-wpf-gadget.aspx那个“......这些好处是有代价的:ActiveX控件必须在注册表中注册,这需要某种安装,例如.msi。默认的小工具安装过程无法安装ActiveX。ActiveX控件不能通过免注册 COM 访问。...”

有没有人有过类似的经历?谁能解释一下这是怎么回事?

其他详细信息:
当控件在注册后被激活时,它显示为 COM 客户端 UI 的一部分。控件不接收焦点,它的元素接收焦点。

当使用 reg-free-com 时,控件无法正确加载。 1) 控件接收焦点而不是它的子元素 2) 控件有一些区域是黑色的而不是 windows 默认颜色 3) 当我进入和退出控件或双击它时,它的子元素获得焦点,控件开始接收事件并且黑色区域被正确的颜色替换

最佳答案

我发现该控件处于非事件状态,因为需要在注册 COM 时设置的 miscStatus 属性才能激活它。我将就此发布一个单独的问题。

关于c# - 使用 Reg-Free-COM 时,事件未发送到基于 WPF 的 ActiveX 控件(COM 互操作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2827787/

相关文章:

c# - 为什么我的 Unity IoC 没有为我创建一个类?

c# - WPF:TreeView 获取父节点

c# - 为什么我的 ASP.NET MVC 4 应用程序创建新实体而不是更新旧实体?

c# - WPF 将一个控件的启用属性绑定(bind)到 CheckBox

c# - 堆栈面板内的图像高度

javascript - 访问在 JavaScript 中使用 attachEvent()/addEventListener() 添加的事件

jquery - 如何在 iPhone/Android 上捕获滚动开始事件

delphi - 如何在处理期间查看查询执行的进度?

c# - 使用 Exists 谓词执行 .. While.. 操作。访问修改后的闭包?

c# - WPF Stackpanel 与其他元素重叠