2010-12-01 19 views
7

Necesito mostrar HTML en mi aplicación silverlight y no puedo encontrar la manera de hacerlo. No puedo utilizar el control del navegador web, ya que necesita para poder ejecutar dentro o fuera de un navegador.Mostrar HTML en una aplicación Silverlight

¿Alguien sabe de una buena manera de hacerlo, porque todo lo que puedo pensar en este momento es ejecutar los métodos de reemplazo en el texto para simplemente reemplazar las etiquetas con equivalentes de C#, por ejemplo (<br /> a \n).

+0

Supongo que la razón por la que necesita poder ejecutar esto fuera del navegador es que necesita usar permisos elevados para algo. ¿Es eso correcto? –

Respuesta

0

Creo que lo que estás buscando es HTML Bridge.

Editar En realidad, ahora no estoy seguro si todavía tendrá acceso a javascript si está ejecutando este OOB. Voy a analizar esto un poco más y lo actualizaré más. Aun así, dejaré la respuesta como referencia.

Segunda edición Esto es lo que he encontrado. HTML Bridge está deshabilitado cuando ejecuta silverlight fuera del navegador. Esto deshabilita el acceso al DOM HTML así como a Javascript. Sin embargo, de acuerdo con un comentario en this site:

HTML Bridge no está disponible la primera vez que instala una aplicación OOB. Pero PUEDE forzarlo si modifica index.html en la carpeta donde está instalada la aplicación simplemente agregando el parámetro enablehtmlaccess.

¡Funciona!

Incluso puede crear elementos HTML dinámicos utilizando los métodos bien conocidos de la clase HtmlPage. Incluso puede abrir una nueva ventana del navegador con el método Navigate() y su parámetro "_blank".

Tenga en cuenta que esta información se ha publicado sobre SL 3. Es posible que esto haya cambiado, pero lo dudo. Por lo tanto, parece que lo que desea hacer es crear una secuencia de comandos en el inicio de su aplicación SL que detecta si su aplicación se está quedando sin navegador. Si es así, es posible que desee tener algún script para llamar que pueda modificar este archivo por usted.

1

La forma en que lo hago es comprobar si la aplicación se está ejecutando dentro del navegador y cambiar los medios de visualización en consecuencia. Si se ejecuta dentro del navegador, superpongo la aplicación con un IFrame, como describo en este artículo: http://www.silverlightshow.net/items/Building-a-Silverlight-Line-Of-Business-Application-Part-6.aspx. De lo contrario, uso el control WebBrowser. Tengo un control que hace todo esto por ti en el código fuente que acompaña a mi libro, que se puede descargar desde el sitio web de Apress aquí: http://www.apress.com/book/downloadfile/4638.

Espero que esto ayude ...

Chris

+0

+1 no lo sabía. Muy aseado –

0

No hace poco era una similar question.

Publiqué un enlace a una implementación que analiza y muestra HTML en línea en Silverlight. Por supuesto, funcionará solo con HTML simple, pero tal vez pueda expandirlo según sus necesidades.

Cuestiones relacionadas