2009-10-09 21 views
5

Mit Silverlight 3 können Sie Ihre Anwendung out of the browser ausführen, die einen Link auf Ihrem Desktop/Startmenü installiert.Silverlight 3 - Kein Browser HtmlPage.Window.Navigate

Das Problem ist, dass wir derzeit

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

eine URL in ein neues Browserfenster zu laden (es ist eine ‚freundliche drucken‘ Seite für die Benutzer drucken zu). Dies funktioniert in der normalen SL-Browser-Version, aber außerhalb des Browsers erhalten wir "Die DOM/Skript-Brücke ist deaktiviert." Ausnahme beim Absetzen des Anrufs.

Gibt es eine Alternative, die aus dem Browser funktioniert?

Ich habe Open page in silverlight out of browser gesehen, aber ich muss dies vollständig im Code tun, also möchte ich keine (versteckte) Hyperlink-Schaltfläche hinzufügen und dann programmgesteuert "klicke" (außer ich muss unbedingt ...) .

Antwort

2

Ich schrieb eine Extension-Methode basierend auf der Idee, vom HyperlinkButton zu erben.

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(); 
} 
} 

Dann können Verwendung es einfach verwenden, wie

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

+0

Gute Arbeit :) !! – Gomino