2009-05-16 9 views
6

Próbuję wyświetlić obraz w aplikacji Silverlight, ale obraz nie jest wyświetlany po uruchomieniu aplikacji. Podczas tworzenia projektu w Visual Studio wybrałem opcję "Automatycznie generuj stronę testową, aby hostować Silverlight w czasie kompilacji".Obrazy niewyświetlane w silverlight po uruchomieniu aplikacji

Kompletny kod jako przykład:

<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> 

Aplikacja pojawi się doskonale wewnątrz Visual Studio, ale kiedy uruchomić aplikację, obraz nie jest wyświetlany. Jakieś pomysły?

+0

Czy próbowałeś załadować obraz lokalnie? –

+0

Nie, ponieważ muszę ładować obrazy z adresów URL. –

+0

Wydaje się prostą rzeczą, wszelkie pomysły, dlaczego powyższy kod nie działa? –

Odpowiedz

1

Mmm ...

Spójrz na to Doc:

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

Myślę, że głównym problemem jest to, że robią przekrój połączenia domeny, a tylko rada: download Skrzypek, tam sprawdzisz, czy serwer, na którym żądasz danych, pozwala na połączenia międzydomenowe (po prostu spróbuj, wczytaj obraz z flckr i zobacz, co się stanie).

Jednym z rozwiązań może być wykorzystanie tunelowania po stronie serwera (niestandardowy hanlder http w domenie, który przechwytuje obraz ze zdalnego serwera i przekierowuje go do petycji SL).

HTH Braulio

0

Twój przykład jest absolutnie działa. Właśnie tego wypróbowałem.

Może być problem w sieci?

Można debugować komunikację sieciową przez Fiddler.

0

Podczas gdy dostęp do URL-a w domenie krzyżowej jest dozwolony dla formantu Obraz, dostęp do schematu krzyżowania nie jest dozwolony. Podczas uruchamiania przy użyciu automatycznie generowanej strony testowej, będzie ona uruchamiana z dysku lokalnego (prawdopodobnie pośrednio zostanie uruchomiona w ramach protokołu FILE), więc nie będzie można przejść do protokołu HTTP. Co powinieneś zrobić, to mieć stronę zawierającą kontrolkę Silverlight pod numerem http://localhost, która powinna wystarczyć.

referencyjny: URL Access Restrictions in Silverlight

Alternatywnie, w swojej Silverlight Project (nie projektu WWW) właściwości, w panelu Debug wybierz opcję, aby uruchomić go jako aplikacja OOB do testowania

Powiązane problemy