
- Silverlight 教程
- Silverlight - 首頁
- Silverlight - 概述
- Silverlight - 環境設定
- Silverlight - 入門
- Silverlight - XAML 概述
- Silverlight - 專案型別
- Silverlight - 固定佈局
- Silverlight - 動態佈局
- 受約束與不受約束
- Silverlight - CSS
- Silverlight - 控制元件
- Silverlight - 按鈕
- Silverlight - 內容模型
- Silverlight - ListBox
- Silverlight - 模板
- Silverlight - 可視狀態
- Silverlight - 資料繫結
- Silverlight - 瀏覽器整合
- Silverlight - 瀏覽器外
- Silverlight - 應用程式、資源
- Silverlight - 檔案訪問
- Silverlight - 檢視模型
- Silverlight - 輸入處理
- Silverlight - 隔離儲存
- Silverlight - 文字
- Silverlight - 動畫
- Silverlight - 影片和音訊
- Silverlight - 列印
- Silverlight 有用資源
- Silverlight - 快速指南
- Silverlight - 有用資源
- Silverlight - 討論
Silverlight - 瀏覽器外應用程式
現在我們將探討 Silverlight 對應用程式的支援,這些應用程式可以安裝在終端使用者的計算機上,並在 Web 瀏覽器之外執行,就像普通的 Windows 應用程式一樣。您可能希望應用程式能夠在瀏覽器外執行,主要有三個原因:
- 互動
- 離線
- 提升信任級別
互動
它可以實現更好的互動設計。Web 的導航模型並不特別適合某些應用程式。例如,位址列和後退按鈕可能是浪費空間且無用的。
Silverlight 在此處的意義如下:
Web 應用程式可以使用客戶端技術(如 Silverlight、Flash 或 AJAX)為單個頁面提供持續更新,可能無需導航到其他頁面。
在某些應用程式中,使用者可能花費數分鐘甚至數小時在瀏覽器認為是單個頁面的內容上。
對於此類應用程式,後退按鈕最終可能會產生相當意外的效果,即退出應用程式,因為它會將您返回到進入應用程式之前所在的頁面。
明顯地,非 Web 類應用程式通常最好在瀏覽器外執行,因為這樣可以去除瀏覽器 Chrome。通常,可用性並不是在瀏覽器外執行的唯一原因。
離線
使用此功能的另一個原因是啟用離線執行。當 Silverlight 應用程式安裝用於瀏覽器外操作時,它會被複制到本地計算機上的每個使用者儲存庫中,並透過通常的作業系統機制(例如 Windows 上的“開始”選單)啟動應用程式。
即使使用者沒有網際網路連線,該應用程式也將可用。
顯然,這僅對不完全依賴於伺服器端資訊的應用程式有用。
例如,包裹遞送服務的自動跟蹤應用程式在沒有網路連線的情況下將毫無用處。
對於某些應用程式,能夠在偶爾的連線故障期間繼續工作非常有用。
提升信任級別
Silverlight 的版本 4 添加了對受信任應用程式的支援。Silverlight 的安全沙箱通常會阻止某些特權操作,例如訪問使用者的檔案。
但是,瀏覽器外應用程式可能會請求提升許可權。如果使用者授予該請求,則該應用程式能夠執行更多任何普通 Windows 應用程式能夠執行的工作型別,例如使用 COM 自動化或自定義視窗邊框。
在瀏覽器內部執行的應用程式永遠不會被信任,因此如果要使用這些功能,則必須編寫瀏覽器外應用程式。
啟用 OOB
我們如何編寫瀏覽器外應用程式?這非常容易。我們只需要更改 Silverlight 專案屬性中的單個設定,它就會向AppManifest.xaml新增合適的設定。
讓我們看看它是如何工作的。
當您的清單指示支援瀏覽器外執行時,這最初不會產生任何影響。該應用程式將照常在瀏覽器中執行。
但是,如果使用者單擊右鍵,標準 Silverlight上下文選單將提供一個額外的專案以將應用程式安裝到計算機上。

如果使用者選擇該專案,將出現一個對話方塊以徵求確認。它還會詢問應用程式是否應從“開始”選單、桌面或兩者中訪問。

您不必依賴於上下文選單。您還可以提供一個按鈕,使用者可以單擊該按鈕來安裝應用程式,因為存在一個 API,您可以呼叫該 API 來啟動安裝。
當您以程式設計方式啟動安裝程式時,使用者仍然會看到該對話方塊。未經使用者同意,您無法安裝應用程式。
Silverlight 應用程式
這是一個非常簡單的 Silverlight 應用程式。以下是其 XAML 程式碼。
<UserControl x:Class = "SimpleOob.MainPage" xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable = "d" d:DesignHeight = "300" d:DesignWidth = "400"> <Grid x:Name = "LayoutRoot" Background = "White"> <Border BorderBrush = "Blue" BorderThickness = "4" CornerRadius = "20" > <Border.Background> <LinearGradientBrush StartPoint = "0,0" EndPoint = "0,1"> <GradientStop Offset = "0.0" Color = "White" /> <GradientStop Offset = "0.15" Color = "#cef" /> <GradientStop Offset = "1.0" Color = "White" /> </LinearGradientBrush> </Border.Background> <TextBlock HorizontalAlignment = "Center" VerticalAlignment = "Center" Text = "Silverlight Application" TextOptions.TextHintingMode = "Animated" TextAlignment = "Center" TextWrapping = "Wrap" FontSize = "72" FontFamily = "Trebuchet MS" > <TextBlock.Effect> <DropShadowEffect Color = "#888" /> </TextBlock.Effect> </TextBlock> </Border> </Grid> </UserControl>
步驟 1 - 要啟用瀏覽器外執行,請轉到專案的屬性,然後單擊 Silverlight 選項卡。我們只需要 - 選中啟用在瀏覽器外執行應用程式複選框。

如果您執行此應用程式,您會注意到根本不會出現 Web 瀏覽器。

事實上,Visual Studio 已經代表您做出了決定。當您啟用瀏覽器外執行時,它不公平地更改了您的除錯設定。
步驟 2 - 因此,此處在解決方案資源管理器中,請注意 Silverlight 專案現在以粗體顯示,表示它是啟動專案。

以前情況並非如此。它一直是 Web 專案。現在,我們不希望那樣,因為我們想展示該複選框如何改變終端使用者的體驗。
步驟 3 - 我們將 Web 專案恢復為啟動專案。

步驟 4 - 再次執行應用程式,您會看到應用程式現在已返回到瀏覽器中。

步驟 5 - 右鍵單擊網頁。您會在上下文選單中注意到通常的 Silverlight 條目,以及一個額外的安裝專案。

步驟 6 - 當您選擇第二個選項時,將出現“安裝應用程式”對話方塊,如下所示。

請注意,它顯示了網站的根 URL,應用程式來自該網站。我們正在使用 Visual Studio 提供的本地除錯 Web 伺服器,因此它顯示 localhost。
步驟 7 - 單擊確定,應用程式將在其自己的視窗中執行,與瀏覽器分離。

您可能會自然地認為此視窗以某種方式由瀏覽器擁有或連線到瀏覽器,但事實並非如此。您可以關閉瀏覽器,而此視窗仍然存在。更重要的是,您可以關閉此視窗,然後無需使用瀏覽器即可重新執行應用程式。
步驟 8 - 如果您在開始選單中開啟搜尋對話方塊並開始鍵入應用程式名稱,它會像任何普通的 Windows 應用程式一樣顯示。

步驟 9 - 您可以執行它,而瀏覽器根本不在視野範圍內。

解除安裝應用程式
應用程式上的預設上下文選單提供了一種簡單的方法來執行此操作。使用者可以合理地期望以與解除安裝任何其他應用程式相同的方式解除安裝此應用程式。

您還可以透過右鍵單擊網頁並選擇刪除此應用程式…來刪除。

OOB 設定
儘管我們只需要更改一個設定即可啟用瀏覽器外操作,但在實踐中,您通常希望執行的操作不止這些。AppManifest.xaml檔案可以包含幾個與瀏覽器外操作相關的設定,我們通常透過 Visual Studio 進行配置。
您可能已經注意到,當您選中啟用在瀏覽器外執行的複選框時,Visual Studio 啟用了名為瀏覽器外設定的按鈕。

讓我們透過單擊該按鈕來檢視它。它將生成以下對話方塊。

我們可以配置的第一件事是顯示為視窗標題的文字。
我們還可以選擇修復視窗尺寸和位置,但目前我們將保留為自動。
此快捷方式名稱出現在開始選單中,以及應用程式安裝後的桌面連結中。
它也是上下文選單和安裝應用程式對話方塊中顯示的文字。
此應用程式說明出現在我將滑鼠懸停在快捷方式上時的工具提示中。
我們可以提供各種尺寸的圖示。這些必須內建到您的專案中。