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()'調用),並把它移到別的地方去。你能否進一步解釋你在做什麼,什麼,當你嘗試會發生什麼我試過嗎? –