0

私は WPF デスクトップ アプリを作成しています。行と列を含むスタック パネルに 15,000 個の要素を表示する必要があります。次のように宣言された 4 つの要素があります。

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個の要素を使用するとき、それらに問題はありません.それらはループ内のセル間で継続的に移動していますが、問題はありませんが、次のように使用します6,000 要素、アプリのパフォーマンスが非常に遅く、それらの動きが非常に遅くなり、貧弱になります。

問題は、プログラムで読みやすくし、実行時にアイテムを表示する際のパフォーマンスを向上させるために、Uri 画像または画像を変換するにはどうすればよいかということです。

4

1 に答える 1

2

これを仮想化する必要があります。仮想化されたコンテナーを使用してみてください。詳細については、VirtualizingStackPanelのヘルプを参照してください。

于 2013-08-26T19:18:20.153 に答える