Application hors navigateur.

 

 

Vous pouvez voir ce lien :

 

http://timheuer.com/blog/articles/silverlight-get-started-part-7-taking-out-of-browser.aspx

 

et regarder cette vidéo :

 

http://silverlight.net/learn/videos/silverlight-videos/out-of-browser-experiences/

 

 

Voici l’essentiel ci après :

 

 

Le fichier OutOfBrowserSetting devrait ressembler à ceci :

 

<OutOfBrowserSettings ShortName="Application multifenetre"

                      EnableGPUAcceleration="False"

                      ShowInstallMenuItem="True">

      <OutOfBrowserSettings.Blurb>

Application multifenetre sur votre Bureau     </OutOfBrowserSettings.Blurb>

 

      <OutOfBrowserSettings.WindowSettings>

            <WindowSettings Title="Application multifenetre" />

      </OutOfBrowserSettings.WindowSettings>

 

      <OutOfBrowserSettings.Icons>

            <Icon Size="16,16">Icons/PG16.png</Icon>

            <Icon Size="32,32">Icons/PG32.png</Icon>

            <Icon Size="48,48">Icons/PG48.png</Icon>

            <Icon Size="128,128">Icons/PG128.png</Icon>

      </OutOfBrowserSettings.Icons>

</OutOfBrowserSettings>


 

Vous devez prévoir un bouton ou un lien pour provoquer l’installation :

 

 

<HyperlinkButton x:Name="lnkInstall"

Content="Installer pour une exécution off line"

Click="lnkInstall_Click"/>

 

private void lnkInstall_Click(object sender, RoutedEventArgs e)

        {

            //installer

            bool installOk = Application.Current.Install();

            if (installOk)

                //cacher le lien si OK

                this.lnkInstall.Visibility = Visibility.Collapsed;

        }//fin install

 

 

Cela fonctionne, vous obtenez un raccourci dans le menu démarrer. Par contre, le programme ne figure pas dans le menu supprimer un programme. Pour désinstaller : lancer l’appli et faire un clic droit.

Cependant il faut éviter que l’opérateur puisse demander un nouvelle installation ce qui provoquerait une exception.

 

 

Vous pouvez le vérifier ainsi :

 

if (Application.Current.InstallState == InstallState.NotInstalled)

 

 

 

Chapitre suivant.