3
我目前需要在我的WPF表单中嵌入一个SWF文件。我读过它,并且至少有两种方法可以实现此目的:使用Windows窗体主机在WPF中嵌入SWF文件?
- 将SWF嵌入到HTML文件中,并将后者嵌入到表单中。
- 使用“AxShockwaveFlashObjects”程序集嵌入SWF。因为这意味着在WinForms中使用,而不是在WPF中使用,所以我将不得不使用Windows窗体主机并将Shockwave Flash Object放入其中。
由于我的应用程序的一些要求(基本上是shockwave对象的“GetVariable”函数),我选择了第二个选项。我把Windows窗体在我的WPF形式的主机,并把下面的代码在其构造:
public MainWindow()
{
InitializeComponent();
AxShockwaveFlash flash = new AxShockwaveFlash();
flash.Location = new System.Drawing.Point(0, 0);
flash.Size = new System.Drawing.Size(200, 200);
flash.Enabled = true;
flash.Movie = "http://www.example.com/file.swf";
windowsFormsHost1.Child = flash;
}
但是,当我调试的代码,我启动时获取此错误:
“的调用类型'Flash_in_WPF.MainWindow'中与指定的绑定约束匹配的构造函数抛出异常。行号“4”和行位置“106”。
如果我动议代码单击按钮时运行,我得到一个不同的错误信息:
类型的异常“System.Windows.Forms.AxHost + InvalidActiveXStateException”被抛出。
为什么我会收到这些错误?
编辑:解决了!事实证明,我需要将整个初始化代码移到“Grid_Loaded”事件中,而不是在我的ctor中。
在此先感谢
嗨,我也试图解决这个问题;你能否详细说明你是如何解决它的? – debu
对不起,但我不能说在两年后我记得。看来我砍你在这里看到的代码在'主窗口()'(除'的InitializeComponent()'调用),并把它移到别的地方去。你能否进一步解释你在做什么,什么,当你尝试会发生什么我试过吗? –