最近開始寫一些WPF的小Sample和文章,但是畢竟WPF應用程式不像Silverlight那麼方便的只要裝個Plugin就可以透過瀏覽器來看執行結果,因此把腦筋動到了改用WPF Browser Application上,雖然它是WPF,但是一樣可以透過瀏覽器來執行,這樣就可以一邊看文章一邊看範例。不過最近主流的幾種瀏覽器都得進行一些設定或修改才能正常瀏覽XBAP應用程式,這篇就來說明該怎麼設定~
最近開始寫一些WPF的小Sample和文章,但是畢竟WPF應用程式不像Silverlight那麼方便的只要裝個Plugin就可以透過瀏覽器來看執行結果,因此把腦筋動到了改用WPF Browser Application上,雖然它是WPF,但是一樣可以透過瀏覽器來執行,這樣就可以一邊看文章一邊看範例。
首先,來看看IE9的設定方式:
在IE9預設的設定下,是沒辦法正常瀏覽XBAP的,得要更改一下設定才行,還沒更改設定之前看到的畫面可能會像下圖:
還好要開始這個功能非常的簡單,只要點選IE9功能表的工具 -> 網際網路選項 -> 切換到「安全性」頁籤 -> 按下「自訂等級」按鈕 -> 於XAML瀏覽器應用程式下面的選項中選取「啟用」,並按下下方的確定鈕,之後逐一按下確定關閉所有的對話視窗即可。
修改完設定之後,只要重新整理畫面,原來無法正常顯示的區域就恢復正常囉!!
再來,看看FireFox的替代方案:
畢竟FireFox不是微軟自家的產品,所以要正常的顯示XBAP的話需要透過外掛元件才行,而在.Net Framework 3.5 SP1中就包含了這個外掛元件,預設檔名與路徑為C:\Windows\Microsoft.NET\Framework\v3.5\Windows Presentation Foundation\NPWPF.dll
只要把它複製到FireFox安裝目錄下的Plugins資料夾中,就可以正常的顯示XBAP的內容囉!!
(如果在Windows7裡找不到這個檔的話,可以看看有安裝.Net Framework 3.5 SP1的XP或是Windows Server2003的相同資料夾有沒有,有的話複製到Windows7一樣可行)
最後,來看看Chrome得怎麼修改:
很神奇的,在Chrome中如果瀏覽到含有XBAP的網頁,它會持續的跳出說找不到xpcom.dll的錯誤訊息,而這個檔哪裡來呢?各位觀眾~~這個檔案在FireFox的安裝目錄裡!!!
只要將系統的Path設定中加入FireFox的安裝路徑就可以正常的用Chrome瀏覽含有XBAP的檔案啦!!(當然,前提是得先安裝好FireFox,神奇吧!?)
系統的Path在哪設呢?請打開控制台 -> 系統 -> 進階系統設定 -> 環境變數 -> 在系統變數清單中找到Path -> 按下編輯鈕 -> 於變數值欄位後方加入;FireFox安裝路徑(如;C:\Program Files (x86)\Mozilla Firefox)後按下確定鈕即可。
OK~在Chrome下也能正常瀏覽啦!!
2012/03/09補充:
萬一使用的作業系統是Windows XP,又想使用Chrome瀏覽XBAP檔,就需要辛苦一點,額外手動將以下幾個位於FireFox安裝資料夾下的檔案,複製到Chrome安裝資料夾(預設路徑為C:\Users\[使用者帳號]\AppData\Local\Google\Chrome\Application)裡:
mozcrt19.dll
nspr4.dll
nss3.dll
nssutil3.dll
plc4.dll
plds4.dll
smime3.dll
ssl3.dll
xpcom.dll
xul.dll
OK~Windows XP裡的Chrome也可以正常瀏覽啦!!