2009-10-09 19 views
5

Silverlight 3 le permite ejecutar su aplicación out of the browser, que instala un enlace en su escritorio/menú de inicio.Silverlight 3 - Fuera del navegador HtmlPage.Window.Navigate

El problema es que actualmente estamos utilizando

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

para cargar una URL en una nueva ventana del navegador (es proporcionar una página 'imprimir amigable' para los usuarios imprimir). Esto funciona en la versión SL normal en el navegador, pero fuera del navegador obtenemos 'El puente DOM/scripting está desactivado'. excepción lanzada al emitir la llamada.

¿Existe una alternativa que funcione desde el navegador?

He visto Open page in silverlight out of browser pero necesito hacer esto completamente en código, así que no quiero agregar un botón de hipervínculo (oculto) y luego hacer clic en él programáticamente (a menos que sea absolutamente necesario ...) .

Respuesta

2

Escribí un método de extensión basado en la idea de heredar de 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(); 
} 
} 

Entonces uso puede utilizarlo simple, como

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

+0

Buen trabajo :) !! – Gomino

Cuestiones relacionadas