从第三方DLL调用控件

时间:2015-05-14 02:37:18

标签: c# wpf dll

我在html页面中使用dll中的控件作为

<object id="ATT"  width="100%" height="100%" 
        classid="CLSID:E20EC898-E4EE-4A20-A5A5-E10144FDC6BA" 
        codebase="AvtechMediaControl.cab#version=1,1,7,6" VIEWASTEXT>
</object>

但我想在我的WPF应用程序中访问它。

当我尝试在工具箱中选择DLL时,我收到以下错误,

“以下控件已成功添加到工具箱中,但未在活动设计器中启用”

我需要一种方法将它添加到我的WPF项目中。我不想使用webbrowser控件。

1 个答案:

答案 0 :(得分:2)

ActiveX控件无法直接添加到WPF视图中,但可以在Windows窗体控件内部托管。 WPF可以托管WinForms控件。 Microsoft有一个walk through describing the process

对此的简短描述是您将向您的XAML视图添加WindowsFormHost。虽然MSDN步骤显示这是在后面的代码中完成,但WindowsFormHost可以添加到XAML中。然后,您将WindowsFormHost的Child设置为ActiveX控件。这必须在后面的代码中完成,因为不支持在XAML编辑器中添加ActiveX控件。

您还需要了解WPF中托管控件的行为。没有WPF内容可以与托管控件重叠。托管控件将始终覆盖WPF内容的顶部。