2014-02-18 3 views
1

XAML:StackPanel с изображениями в ScrollViewer - не показывает изображения

<Grid x:Name="LayoutRoot" VerticalAlignment="Top"> 
     <ScrollViewer x:Name="ScrollViewer1" Margin="0,0,0,0"> 
      <StackPanel x:Name="myStackPanel"/> 
     </ScrollViewer> 
    </Grid> 

C#:

Image[] image2 = new Image[30]; 

       for (int n = 1; n <= 29; n++) 
       { 
        image2[n] = new Image(); 
        BitmapImage bitmapa = downloadBitmap(n); 
        image2[n].Source = bitmapa; 
        myStackPanel.Children.Add(image2[n]); 
       } 

Я загружаю BitmapImage из IsolatedSotrage -> downloadBitmap (п).

Когда я запускаю приложение, у меня есть черный образ на моем телефоне, потому что фотографии не видны (почему ?!), но когда я блокирую телефон и разблокирую, у меня есть все фотографии, все в порядке.

Когда я удаляю ScrollViewer, у меня нет никаких проблем.

Почему это происходит? Пожалуйста, помогите мне.

+0

Dispatcher.BeginInvoke (() => { image2 [n] .Source = bitmapa; myStackPanel.Children.Add (image2 [n]);}); } Исключение типа 'System.NullReferenceException' произошло в MCD.DLL, но не было обработано в коде пользователя Если есть обработчик для этого исключения, программа может быть безопасно продолжена. – lukas

+0

частная пустота SetImage (IMG изображения, BitmapImage bitmapa) {Dispatcher.BeginInvoke (() => img.Source = bitmapa; myStackPanel.Children.Add (IMG);}} SetImage (image2 [п], bitmapa) – Mahantesh

+0

Проблема заключается в индексе n, чтобы получить элемент в диспетчере. Итак, сделайте выше решение – Mahantesh

ответ

0

Дипак - Я использовал сетку - я держу каждую фотографию в отдельной сетке:

   Image[] image2 = new Image[30]; 
       for (int n = 1; n <= 29; n++) 
       { 
        Grid myGrid = new Grid(); 
        Image2[n] = new Image(); 
        aktualizacja2 bitmapa = new aktualizacja2(n, path); 
        Image2[n].Source = bitmapa.getBitmap(); 

        myGrid.Children.Add(Image2[n]); 
        myStackPanel.Children.Add(myGrid); 
       } 

это работает, но загрузка изображений занимает гораздо больше времени ...

Смежные вопросы