2015-09-25 58 views
0

因此,我創建了一個程序,在屏幕上加載100張圖片,每張圖片基本上代表一個對象,並讓用戶選擇他們想要的。在.Net中顯示圖像沒有崩潰的應用程序

問題是應用程序不能在我的圖片框中留下大量紅色x的情況下加載100張圖片。

我怎樣才能減少存儲器的每個畫面需要多少?

enter image description here

編輯:圖像實際上不是純黑色的,我只是還沒有與圖像規模玩過沒顯示我想要的東西。圖像大小實際上是4288 x 2848.我不需要在這個屏幕上,一個小規模的圖像將工作。

這是用於拍賣顯示。所以基本上你在這裏看到的圖像是一個縮略圖,並會帶你到拍賣物品的頁面。

CODE: 使用的Infragistics/WPF

 foreach (var item in Vehicles) 
     { 
      BitmapImage b = new BitmapImage(); 
      b.BeginInit(); 
      b.UriSource = new Uri(item.OverviewImage); 
      b.EndInit(); 

      var addTile = new XamTile 
      { 
       Content = new Image { Source = b} 
      }; 

      tileManager.Items.Add(addTile); 
     } 

其他代碼我試過了,沒有用的Infragistics/C#

public List<Vehicle> Vehicles { get; set; } 
    private int count = 0; 

    public AuctionScreen() 
    { 
     InitializeComponent(); 

     Vehicles = new List<Vehicle>(); 
    } 

    private void AuctionScreen_Load(object sender, EventArgs e) 
    { 
     timer1.Start(); 
    } 

    private void timer1_Tick(object sender, EventArgs e) 
    { 
      var m = new PictureBox(); 
      m.ImageLocation = Vehicles[count].OverviewImage; 

      flowLayoutPanel1.Controls.Add(m); 
      if (count > Vehicles.Count) 
      { 
       timer1.Stop(); 
      } 
    } 
+0

每張圖片的大小是多少?他們真的是黑人(或者這只是一個隱私問題)? –

+2

我會推動縮放:https://msdn.microsoft.com/en-us/library/7wt4bf7h%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396 – Nebula

+0

張貼您的代碼請 – 2015-09-25 13:09:55

回答

0

你可能會想你的所有圖片繪製到一個單一的畫布以減少顯示如此多的圖片盒的CPU和RAM開銷

我會看看這個問題。 How to render bitmap into canvas in WPF?在這裏他們正在討論將圖像繪製到畫布上,通過在創建矩形時指定矩形,您應該能夠在一個畫布上繪製多個圖像。

如果您需要這些可點擊的操作,只需監聽畫布的onClick事件,並通過鼠標位置獲取所需的圖像。

相關問題