2009-10-09 6 views
5

Silverlight 3 vous permet d'exécuter votre application out of the browser, qui installe un lien sur votre bureau/démarrer le menu.Silverlight 3 - Hors navigateur HtmlPage.Window.Navigate

Le problème est que nous utilisons actuellement

System.Windows.Browser.HtmlPage. 
    Window.Navigate(new Uri("http://<server>/<resource>"), "_blank") 

pour charger une URL dans une nouvelle fenêtre du navigateur (il est de fournir une «version imprimable page pour les utilisateurs d'imprimer). Cela fonctionne dans la version normale de SL dans le navigateur, mais en dehors du navigateur, nous obtenons 'Le DOM/scripting bridge est désactivé.' exception levée lors de l'émission de l'appel.

Existe-t-il une alternative qui fonctionne à partir du navigateur? J'ai vu Open page in silverlight out of browser mais j'ai besoin de le faire entièrement en code, donc je ne veux pas ajouter un bouton de lien hypertexte (caché) et ensuite le cliquer par programmation (sauf si je dois absolument ...) .

Répondre

2

J'ai écrit une méthode d'extension basée sur l'idée d'hériter de l'HyperlinkButton.

public static class UriExtensions { 

class Clicker : HyperlinkButton { 
    public void DoClick() { 
    base.OnClick(); 
    } 
} 

static readonly Clicker clicker = new Clicker(); 

public static void Navigate(this Uri uri) { 
    Navigate(uri, "_self"); 
} 

public static void Navigate(this Uri uri, string targetName) { 
    clicker.NavigateUri = uri; 
    clicker.TargetName = targetName; 
    clicker.DoClick(); 
} 
} 

Ensuite, l'utilisation peut l'utiliser simple, comme

nouveau Uri ("http://www.google.com ") .Navigate (" _ blank");

+0

Beau travail :) !! – Gomino

Questions connexes