共用方式為


XBAP 裝載 Silverlight 範例

更新: 2008 年 7 月

本範例示範以下項目:

  • 如何在 XAML 瀏覽器應用程式 (XBAP) 中裝載 Silverlight 架構應用程式。

  • 如何在主 XBAP 和裝載的 Silverlight 架構應用程式間進行通訊。

Download sample

在 XBAP 中裝載 Silverlight 架構應用程式

Silverlight 架構應用程式可以使用 WebBrowser 控制項裝載於 XBAP 中。XBAP Page 的內容包含 WebBrowser 控制項。這個控制項的來源 URI 會辨識裝載 Silverlight 架構應用程式的 HTML 頁面。HTML 頁面會使用 Silverlight 外掛程式控制項裝載 Silverlight 架構應用程式。

下圖顯示了在 XBAP 中裝載 Silverlight 架構應用程式的高階架構。

裝載 Silverlight 應用程式的 WPF 應用程式

由 XBAP 向 Silverlight 架構應用程式進行通訊

主 XBAP 可以透過裝載 Silverlight 架構應用程式的 HTML 頁面所實作的指令碼方法,和裝載的 Silverlight 架構應用程式通訊。XBAP 會使用 InvokeScript 方法呼叫指令碼方法。指令碼方法接著會呼叫可編寫指令碼的物件所實作的方法。這項物件是由 Silverlight 架構應用程式公開,可由 Silverlight 外掛控制項的 Content 屬性供指令碼存取。

下圖說明將 Silverlight 架構應用程式裝載於 XBAP 中的高階架構,以及用於將方法呼叫由主 XBAP 傳播至裝載的 Silverlight 架構應用程式的主要技術。

WPF 與 Silverlight 互通

若要使用 WebBrowser 控制項呼叫指令碼方法,請參閱 WebBrowser 控制項範例。如需實作公開可撰寫指令碼之物件的 Silverlight 架構應用程式的詳細資訊,請參閱逐步解說:由 JavaScript 呼叫 Managed 程式碼 (英文)。如需 Silverlight 架構應用程式開發的介紹,請參閱 Silverlight 使用者入門 (英文)。

由 Silverlight 架構應用程式向 XBAP 進行通訊

裝載的 Silverlight 架構應用程式可以透過裝載 Silverlight 架構應用程式的 HTML 頁面所實作的指令碼方法,和主 XBAP 進行通訊。Silverlight 架構應用程式會使用 HtmlWindow 類別的 Invoke 方法呼叫指令碼方法 (由 Silverlight System.Windows.Browser 命名空間)。Silverlight 架構應用程式會由 HtmlPage 類別 (也在 System.Windows.Browser 命名空間之中) 的 Window 屬性,取得對視窗 (由 HtmlWindow 類別呈現) 的參考。指令碼方法接著會呼叫可編寫指令碼的物件所實作的方法。這項物件是使用 ObjectForScripting 屬性,由 XBAP 公開,可由主瀏覽器所公開之 window 物件的 external 屬性供指令碼存取。

下圖說明將 Silverlight 架構應用程式裝載於 XBAP 中的高階架構,以及用於將方法呼叫由裝載的 Silverlight 架構應用程式傳播至主 XBAP 的主要技術。

Silverlight 與 WPF 互通

若要由 Silverlight 架構應用程式呼叫指令碼方法,請參閱逐步解說:由 Managed 程式碼呼叫 JavaScript (英文)。如需由 XBAP 公開可編寫指令碼物件的詳細資訊,請參閱 WebBrowser 控制項範例ObjectForScripting

設定範例

這個範例包含一個方案 (XBAPHostingSilverlightSample),其中有兩個專案:

  1. 裝載 Silverlight 架構應用程式的 XBAP 專案 (WPFBrowserApplication)。

  2. Silverlight 架構應用程式專案 (SilverlightApplication)。

SilverlightApplication 會在WPFBrowserApplication 之後建置,並包括一個建置後的步驟,會將產生的 Silverlight 架構應用程式 silverlightspplication.xap 複製到 WPFBrowserApplication 專案輸出資料夾:\bin\debug。

此範例必須設定為透過指向 WPFBrowserApplication 專案輸出資料夾 (\bin\debug) 的虛擬目錄,在 localhost 上執行,步驟如下:

  1. 由 [開始 | 系統管理工具] 選擇 [網際網路資訊服務 (IIS) 管理員]。

  2. 選取 [網站 | 預設的網站]。

  3. 以滑鼠右鍵按一下 [預設的網站] 並選擇 [新增虛擬目錄],然後

    1. 將 [別名] 設定為 "WPFBrowserApplication"。

    2. 將 [實體路徑] 設定為 WPFBrowserApplication 專案輸出資料夾。

  4. 按一下 [確定] 建立虛擬目錄。

執行範例

若要執行此範例,請巡覽至下列 URL:

https://localhost/WPFBrowserApplication/WPFBrowserApplication.xbap

最佳作法

這個範例示範 Windows Presentation Foundation 的特定功能,因此並未遵循應用程式開發的最佳做法。如需 Windows Presentation Foundation (WPF) 和 Microsoft .NET Framework 應用程式開發最佳做法的完整內容,請依適當情況參閱下列內容:

協助工具 - 協助工具最佳作法

當地語系化 - WPF 全球化和當地語系化概觀

效能 - 最佳化 WPF 應用程式效能

安全性 - Windows Presentation Foundation 安全性

建置範例

  • 安裝 Windows Software Development Kit (SDK),然後開啟 [建置環境命令] 視窗。在 [開始] 功能表中,指向 [所有程式]、[Microsoft Windows SDK],然後按一下 CMD 殼層。

  • 接著,在軟體開發套件 (SDK) 文件處下載軟體,並存至您的硬碟上。

  • 若要組建建置環境命令視窗的範例,您必須先移至範例的來源目錄在命令提示字元中,輸入 MSBUILD。

  • 若要在 Microsoft Visual Studio 中建置範例,請載入範例方案或專案檔,然後按下 CTRL+SHIFT+B。

執行範例

  • 若要在 [建置環境命令視窗] 中執行編譯後的範例,請執行位在包含範例原始程式碼的檔案夾 (Bin\Debug 或 Bin\Release 檔案夾) 下的 .exe 檔案。

  • 若要在 Visual Studio 中執行編譯後的範例並進行偵錯,請按 F5。

請參閱

工作

WebBrowser 控制項範例

概念

巡覽概觀

結構化巡覽概觀

參考

WebBrowser

其他資源

Silverlight 使用者入門 (英文)

逐步解說:由 JavaScript 呼叫 Managed 程式碼 (英文)

變更記錄

日期

記錄

原因

2008 年 7 月

加入範例。

SP1 功能變更。