<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                在上篇“[Silverlight實例教程 - Out of Browser開篇](http://www.cnblogs.com/jv9/archive/2010/07/08/1773276.html)”中,介紹了Silverlight的Out of Browser基礎理論知識。本篇將介紹Silverlight的Out of Browser在實例開發前的基礎設置以及一些開發技巧。 在創建Silverlight項目時,默認是不支持Out of Browser模式的,所以在使用Silverilght的Out of Browser前,需要對Silverlight項目進行設置,使其支持OOB項目安裝和運行。在以下演示中,將創建一個演示例程,該例程將在后續教程中使用,由于該教程不屬于Silverilght基礎開發教程,所以這里,我不在細述如何創建Silverlight項目, 項目名稱: SilverilghtOOBDemo 項目環境:VS2010 + Silverlight 4 ![](https://box.kancloud.cn/2016-03-18_56eb67c315872.jpg) Silverlight的Out of Browser應用設置 在Silverlight項目中,設置項目支持Out of Browser模式非常簡單,首先右鍵選中SilverlightOOBDemo客戶端項目,選擇“Properties”屬性 ![](https://box.kancloud.cn/2016-03-18_56eb67c324d50.jpg) 在項目屬性欄,默認情況下已經選擇了Silverlight標簽,而在右邊內容頁面中,"Enable running application out of the browser"是沒有被選中的,我們僅需要選中該選項,保存,即可設置當前Silverlight項目支持Out of Browser。 ![](https://box.kancloud.cn/2016-03-18_56eb67c33d441.jpg) 在"Enable running application out of the browser"選項下,可以看到一個Out-of-Browser Settings...按鈕,點擊進行該按鈕,即可對Out-of-Browser進行設置: ![](https://box.kancloud.cn/2016-03-18_56eb67c354faa.jpg) 從上圖可以看出,開發人員可以通過這些屬性,創建個性的Out of Browser應用。以上設置屬性是保存在Visual Studio 2010中的OutOfBrowserSettings.xml文件中的,開發人員也可以通過修改該文件來設置OOB應用屬性。 ![](https://box.kancloud.cn/2016-03-18_56eb67c371db0.jpg) ~~~ <OutOfBrowserSettings?ShortName="SilverlightOOBDemo?Application"?EnableGPUAcceleration="False"?ShowInstallMenuItem="True"> ???<OutOfBrowserSettings.Blurb>SilverlightOOBDemo?Application?on?your?desktop;?at?home,?at?work?or?on?the?go.</OutOfBrowserSettings.Blurb> ???<OutOfBrowserSettings.WindowSettings> ?????<WindowSettings?Title="SilverlightOOBDemo?Application"?/> ???</OutOfBrowserSettings.WindowSettings> ???<OutOfBrowserSettings.Icons?/> </OutOfBrowserSettings> ~~~ 在完成以上設置后,點擊確定和保存,該項目即可支持Out of Browser模式。 Silverlight的Out of Browser應用安裝 Silverlight Out of Browser應用的安裝很簡單,作為開發人員我們可以通過兩種方式提供給用戶安裝OOB應用到本地。 第一種方式是使用默認的右鍵菜單按鈕安裝應用到本地。 ![](https://box.kancloud.cn/2016-03-18_56eb67c382b7b.jpg) 這種方式是Out of Browser默認的安裝方式,但是該方式的弊端是不易與用戶體驗,每次用戶要右鍵點擊應用才能安裝應用。作為專業Out of Browser應用,通常會使用第二種方式安裝OOB應用到本地。 第二種方式,添加控件通過Application.Current.Install()事件安裝應用到本地。 在當前應用的MainPage下,添加安裝按鈕,通過按鈕點擊事件安裝應用到本地。 ![](https://box.kancloud.cn/2016-03-18_56eb67c390809.jpg) ~~~ <Grid?x:Name="LayoutRoot"?Background="DimGray"> ?????????<Button?x:Name="btInstall"?Content="安裝應用到本地"?Width="200"?Height="50"?Click="btInstall_Click"/> </Grid> ~~~ ~~~ private?void?btInstall_Click(object?sender,?RoutedEventArgs?e) ?????????{ ?????????????try? ?????????????{? ?????????????????Application.Current.Install();? ?????????????} ?????????????catch?(InvalidOperationException?ex)? ?????????????{? ?????????????????MessageBox.Show("應用已經安裝.");? ?????????????} ?????????????catch?(Exception?ex)? ?????????????{? ?????????????????MessageBox.Show("應用不能被安裝,錯誤信息如下:"?+?Environment.NewLine?+?ex.Message);? ?????????????}? ?????????} ~~~ 通過上面簡單代碼也可以達到安裝OOB應用到本地的效果。 對于較為專業的Out of Browser應用的安裝,我們經常會添加一些代碼對當前應用安裝進行簡單的判斷,判斷該應用是否已經被安裝到了本地,如果已經安裝,將忽略不再進行安裝步驟。這是對OOB應用的一種保護措施。我們簡單修改項目代碼, ~~~ ?public?MainPage() ?????????{ ?????????????InitializeComponent(); ? ?????????????if?(Application.Current.IsRunningOutOfBrowser) ?????????????{ ?????????????????btInstall.Visibility?=?Visibility.Collapsed; ?????????????????lbStatus.Text?=?"我正在Out?of?Browser下運行"; ?????????????} ?????????????else ?????????????{ ?????????????????btInstall.Visibility?=?Visibility.Visible; ?????????????????lbStatus.Text?=?"我正在瀏覽器中運行"; ????????????} ? ?????????????if?(Application.Current.InstallState?!=?InstallState.Installed) ?????????????{ ?????????????????btInstall.IsEnabled?=?true; ? ?????????????} ?????????????else ?????????????{ ?????????????????btInstall.IsEnabled?=?false; ????????????????btInstall.Content?=?"應用已經安裝到本地"; ?????????????} ? ?????????} ~~~ 安裝本地前: ![](https://box.kancloud.cn/2016-03-18_56eb67c39da1c.jpg) 安裝本地后: ![](https://box.kancloud.cn/2016-03-18_56eb67c3b55fd.jpg) 重復安裝時: ![](https://box.kancloud.cn/2016-03-18_56eb67c3c5f5d.jpg) 對于安裝時所處于的狀態控制,我們可以通過InstallState進行判斷。我們可以通過添加以下代碼: ~~~ ?private?void?Current_InstallStateChanged(object?sender,?System.EventArgs?e) ?????????{ ?????????????switch?(Application.Current.InstallState) ?????????????{ ?????????????????case?InstallState.Installing: ?????????????????????btInstall.IsEnabled?=?false; ?????????????????????btInstall.Content?=?"正在安裝..."; ?????????????????????break; ? ?????????????????case?InstallState.Installed: ?????????????????????btInstall.IsEnabled?=?false; ????????????????????btInstall.Content?=?"已經安裝"; ?????????????????????MessageBox.Show("OOB應用已經安裝到本地"); ?????????????????????break; ?????????????????case?InstallState.NotInstalled: ?????????????????????btInstall.IsEnabled?=?true; ?????????????????????btInstall.Content?=?"點擊安裝該應用到本地"; ?????????????????????break; ????????????????case?InstallState.InstallFailed: ????????????????????MessageBox.Show("OOB應用安裝失敗"); ????????????????????btInstall.IsEnabled?=?false; ?????????????????????break; ?????????????} ?????????} ~~~ 當安裝時,用戶可以看到提示: ![](https://box.kancloud.cn/2016-03-18_56eb67c3d83b8.jpg) 以上是Silverlight Out of Browser安裝方法和一些控制技巧。 Silverlight的Out of Browser應用卸載 Silverlight的OOB應用卸載同樣很簡單,Silverlight沒有和安裝時候的Install API,所以我們無法通過代碼的方式控制卸載,但是可以通過以下兩種方式卸載應用: 1. 右鍵點擊應用,選擇卸載應用選項; ![](https://box.kancloud.cn/2016-03-18_56eb67c3e984b.jpg) 2. 通過Windows“控制面板",選擇對應應用進行卸載,這個是傳統型卸載方法,這里不再贅述. 簡單實例 在這個簡單實例中,我將在當前的OOB應用中添加一個簡單的網絡監測代碼,演示該應用在線和離線時的網絡狀態。在該應用,我們仍舊會使用System.Windows.Application API來判斷應用是否離線安裝,而我們還會使用System.Net.NetworkInformation API來判斷其網絡狀態。簡單修改代碼如下: ~~~ ?<UserControl?x:Class="SilverlightOOBDemo.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="DimGray"> ?????????<StackPanel?Orientation="Vertical"> ?????????????<Button?x:Name="btInstall"?Content="安裝應用到本地"?Width="200"?Height="50"?Click="btInstall_Click"/> ?????????????<TextBlock?x:Name="lbStatus"?Foreground="White"?HorizontalAlignment="Center"?FontSize="18"/> ?????????????<TextBlock?x:Name="lbNetworkStatus"?Foreground="LightGreen"?HorizontalAlignment="Center"?FontSize="18"/> ?????????</StackPanel> ?????</Grid> </UserControl> ~~~ ~~~ ?private?void?CheckNetworkStatus() ?????????{ ?????????????if?(NetworkInterface.GetIsNetworkAvailable()) ?????????????{ ?????????????????lbNetworkStatus.Foreground?=?new?SolidColorBrush(Color.FromArgb(255,90,240,90)); ?????????????????lbNetworkStatus.Text?=?"當前網絡處于連接狀態"; ?????????????} ?????????????else ?????????????{ ?????????????????lbNetworkStatus.Foreground?=?new?SolidColorBrush(Colors.Red); ?????????????????lbNetworkStatus.Text?=?"當前網絡處于斷線狀態"; ?????????????} ?????????} ????????private?void?NetworkChange_NetworkAddressChanged(object?sender,?EventArgs?e) ?????????{ ?????????????CheckNetworkStatus(); ????????} ~~~ 修改構造函數代碼: ~~~ ??public?MainPage() ?????????{ ?????????????InitializeComponent(); ?????????????if?(Application.Current.IsRunningOutOfBrowser) ?????????????{ ?????????????????btInstall.Visibility?=?Visibility.Collapsed; ?????????????????lbStatus.Text?=?"我正在Out?of?Browser下運行"; ?????????????} ?????????????else ?????????????{ ?????????????????btInstall.Visibility?=?Visibility.Visible; ?????????????????lbStatus.Text?=?"我正在瀏覽器中運行"; ?????????????} ?????????????if?(Application.Current.InstallState?!=?InstallState.Installed) ?????????????{ ?????????????????btInstall.IsEnabled?=?true; ?????????????} ?????????????else ?????????????{ ?????????????????btInstall.IsEnabled?=?false; ?????????????????btInstall.Content?=?"應用已經安裝到本地"; ?????????????} ?????????????CheckNetworkStatus(); ?????????????Application.Current.InstallStateChanged?+=?Current_InstallStateChanged; ?????????????NetworkChange.NetworkAddressChanged?+=?new?NetworkAddressChangedEventHandler(NetworkChange_NetworkAddressChanged); ?????????} ~~~ 運行后可以在離線狀態下,查看網絡應用狀態: ![](https://box.kancloud.cn/2016-03-18_56eb67c40652f.jpg) ![](https://box.kancloud.cn/2016-03-18_56eb67c4233c1.jpg) 本文主要講述Silverlight的Out of Browser應用設置,安裝和卸載,屬于Silverlight實例開發前的基礎,下一篇我將繼續介紹Silverlight的Out of Browser應用開發基礎。 [本篇代碼下載](http://files.cnblogs.com/jv9/SilverlightOOBDemo.zip) 歡迎大家加入"專注Silverlight" 技術討論群: 32679955(六群) 23413513(五群) 32679922(四群) 100844510(三群) 37891947(二群) 22308706(一群)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看