2014-02-18 30 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]); 
       } 

我從IsolatedSotrage下載的BitmapImage - > downloadBitmap(N)。

當我啓動應用程序時,我的手機中有一個黑色圖像becouse照片不可見(爲什麼?!),但是當我鎖定手機並解鎖時,我有所有照片,一切正常。

當我刪除ScrollViewer我沒有任何問題。

爲什麼會發生這種情況?請幫幫我。

+0

Dispatcher.BeginInvoke(()=> { image2 [n] .Source = bitmapa; myStackPanel.Children.Add(image2 [n]);}); } MCD.DLL中發生了類型'System.NullReferenceException'的異常,但未在用戶代碼中處理 如果存在此異常的處理程序,則可以安全地繼續該程序。 – lukas

+0

私人無效SetImage(圖像IMG,BitmapImage的bitmapa) {Dispatcher.BeginInvoke(()=> img.Source = bitmapa; myStackPanel.Children.Add(IMG);}} SetImage(圖像2 [n]的,bitmapa) ; – Mahantesh

+0

問題是在索引n中獲取元素在Dispatcher中,所以上面的解決方案 – 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); 
       } 

它的工作原理,但加載圖像需要更長的時間......