3

我目前需要在我的 WPF 表单中嵌入一个 SWF 文件。我读过它,至少有两种方法可以做到这一点:

  • 将 SWF 嵌入 HTML 文件并将后者嵌入我的表单中。
  • 使用“AxShockwaveFlashObjects”程序集嵌入 SWF。因为这是用于 WinForms 而不是 WPF,所以我将不得不使用 Windows Forms Host 并将 Shockwave Flash 对象放入其中。

由于我的应用程序的一些要求(基本上是冲击波对象的“GetVariable”函数),我选择了第二个选项。我在 WPF 表单中放置了一个 Windows 窗体主机,并将以下代码放入其构造函数中:

    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中。

提前致谢

4

1 回答 1

1

解决了!认为我应该将问题设置为已解决。

结果我需要将整个初始化代码移动到“Grid_Loaded”事件而不是我的ctor中。

于 2013-10-06T04:27:52.803 回答