2009-05-16 35 views
6

Estoy tratando de mostrar una imagen dentro de una aplicación de Silverlight, pero la imagen no se muestra cuando se ejecuta la aplicación. Al crear el proyecto en Visual Studio, elegí la opción "Generar automáticamente una página de prueba para alojar Silverlight en tiempo de construcción".Las imágenes no se muestran en Silverlight cuando se ejecuta la aplicación

Código completo como un ejemplo:

<UserControl x:Class="SilverlightApplication3.Page" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Width="400" Height="300"> 
    <StackPanel>   
     <Image Source="http://www.beachtownpress.com/db5/00415/beachtownpress.com/_uimages/beach7.jpg" /> 
    </StackPanel> 
</UserControl> 

La aplicación parece perfectamente dentro de Visual Studio, pero cuando corro la aplicación, la imagen no se muestra. ¿Algunas ideas?

+0

¿Ha intentado cargar la imagen localmente? –

+0

No, porque necesito cargar imágenes desde las URL. –

+0

Parece una cosa simple, ¿alguna idea de por qué el código anterior no funciona? –

Respuesta

1

Mmm ...

Eche un vistazo a este documento:

http://msdn.microsoft.com/en-us/library/system.windows.controls.image.source(VS.95).aspx

Creo que el problema principal es que usted está haciendo una llamada entre dominios, justo y consejos: descarga violinista, allí comprobará si el servidor donde está solicitando los datos permite llamadas de dominio cruzado (simplemente intente, cargue una imagen de flckr y vea qué sucede).

Una solución, podría ser utilizar tunneling en el lado del servidor (un http personalizado en su dominio, que toma la imagen de un servidor remoto y la redirige a su petición SL).

HTH Braulio

0

Su ejemplo es absolutamente trabajando. Lo acabo de probar.

¿Puede ser el problema en la red?

Puede depurar las comunicaciones de red a través del Fiddler.

0

Mientras que el acceso de URL entre dominios está permitido para el control de imagen, el acceso de esquema cruzado no lo está. Cuando se ejecuta usando la página de prueba generada automáticamente, se ejecutará desde su unidad local (supongo que se ejecutará indirectamente bajo el protocolo FILE), por lo que no se le permitirá realizar un esquema cruzado con el protocolo HTTP. Lo que debe hacer es hacer que la página que contiene su control de Silverlight se ejecute en http://localhost, eso debería hacer el truco.

Referencia: URL Access Restrictions in Silverlight

Por otra parte, en su proyecto de Silverlight (no el proyecto web) propiedades, al panel de depuración, seleccione para ejecutarlo como aplicación fuera de banda para probar

Cuestiones relacionadas