2013-08-26 22 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的帮助。