2013-08-26 23 views
0

我正在做一個WPF桌面應用程序,我需要顯示一個StackPanel 15000元的行和列,我已經聲明如下4個元素:我需要加快我的WPF的演出節目

public class PasaImagen 
{ 
    public string imagenbindeada { get; set; } 
    public int TiempoDeVida { get; set; } 
    //public int Cantidad { get; set; } 
} 

if (imagenrandom1 == 1) 
        { 
         //string consecutivas = "/foto" + imagenrandom1.ToString() + ".png"; 
         items1[i].Add(new PasaImagen { imagenbindeada = "/pasto.png", TiempoDeVida=TiempoDeVidaPasto }); 
         matriz1[j, i] = "pasto"; 
         listapocicionesdematriz1.Add(i.ToString() + " , " + j.ToString()); 
        } 
        if (imagenrandom1 == 2) 
        { 
         //string consecutivas = "/foto" + imagenrandom1.ToString() + ".png"; 
         items1[i].Add(new PasaImagen { imagenbindeada = "/conejo.png", TiempoDeVida=TiempoDeVidaConejo }); 
         matriz1[j, i] = "conejo"; 
         listapocicionesdematriz1.Add(i.ToString() + " , " + j.ToString()); 
        } 
        if (imagenrandom1 == 3) 
        { 
         //string consecutivas = "/foto" + imagenrandom1.ToString() + ".png"; 
         items1[i].Add(new PasaImagen { imagenbindeada = "/lobo.png", TiempoDeVida=TiempoDeVidaLobo }); 
         matriz1[j, i] = "lobo"; 
         listapocicionesdematriz1.Add(i.ToString() + " , " + j.ToString()); 
        } 
        if (imagenrandom1 == 4) 
        { 

         items1[i].Add(new PasaImagen { imagenbindeada = "/tierra.png" ,TiempoDeVida=TiempoDeVidaTierra }); 
         matriz1[j, i] = "tierra"; 
         listapocicionesdematriz1.Add(i.ToString() + " , " + j.ToString()); 
        } 

真正的問題是當我必須在堆疊面板中顯示它們時,當我使用1,000個元素時,我對它們沒有任何問題,它們在循環中不斷在一個單元格之間移動到另一個單元格中,沒有問題,但是隨後使用像6000個元素,應用程序的性能非常緩慢,並且它們的移動變得非常慢並且很差。

問題是,我如何轉換Uri圖像或圖像,以使它們更易於閱讀程序並在執行時顯示項目時提供更好的性能?

回答

2

您應該對此進行虛擬化。嘗試使用具有虛擬化功能的容器。有關詳細信息,請參閱VirtualizingStackPanel的幫助。