Мне нужно встроить 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.
Заранее спасибо