Встраивание SWF-файла в WPF с помощью Windows Forms Host? - PullRequest
3 голосов
/ 18 августа 2011

Мне нужно встроить SWF-файл в мою форму WPF.Я читал об этом, и есть по крайней мере два способа сделать это:

  • Встраивание SWF в HTML-файл и встраивание последнего в мою форму.
  • Встраивание SWF с использованиемСборки "AxShockwaveFlashObjects".поскольку он предназначен для использования в WinForms, а не в WPF, мне придется использовать хост Windows Forms и поместить в него объект Shockwave Flash.

Из-за некоторых требований моегоПриложение (в основном функция GetVariable объекта Shockwave) я выбрал второй вариант.Я помещаю Windows Forms Host в свою форму 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.

Заранее спасибо

1 Ответ

1 голос
/ 06 октября 2013

Решено !Я подумал, что должен решить вопрос как решенный.

Оказывается, мне нужно было переместить весь код инициализации в событие "Grid_Loaded", а не в мой ctor.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...