Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C# WPF Pieni ongelma kuvalistan teossa

Daih [05.05.2011 22:17:51]

#

Hei!

Olen tässä rakentamassa pientä kuvienkatseluohjelmaa ja olisi tarkoitus lätkäistä stackpaneliin kuvia. Ongelmaa alkaa kuitenkin tulemaan kun valittuja kuvia on reippaasti, itsellä yli 3000. Tällöin tulee käsittämätön virhesanoma, josta ei irtoa mitään.

XamlParseException was unhadled
{"'The invocation of the constructor on type 'Kuvankatselin.MainWindow' that matches the specified binding constraints threw an exception.' Line number '3' and line position '9'."}

Tätä ei siis tule jos kuvia on vähän, luokkaa < 100. Alla on vielä koodi joka käsittelee kuvien pistämisen stackpaneliin. Kuvien sijainnit on ladattu FileInfo taulukkoon.

public void PaivitaKuvalista()
        {
            // Tyhjätään edelliset kuvat poies
            kuvalista.Children.Clear();
            // Käydään läpi kuvatiedostot
            for (int i = sivu*50; sivu*50 + i < sivu*50 + 50;i++)
            {
                if (i > projekti.Kuvat.Length)
                {
                    break;
                }
                // Lisätään kuvat
                Image kuva = new Image();
                kuva.Stretch = Stretch.Uniform;
                BitmapImage skuva = new BitmapImage();
                skuva.BeginInit();
                skuva.UriSource = new Uri(projekti.Kuvat[i].FullName);
                skuva.DecodePixelWidth = 200;
                skuva.EndInit();

                kuva.Source = skuva;
                // Lisätään kuva listaan
                kuvalista.Children.Add(kuva);
            }
        }

Voivatko ongelmani johtua myös muistin loppumisesta koneessani?

groovyb [05.05.2011 22:22:35]

#

pistä try catch, ja katso tuleeko System.OutOfMemoryException

Daih [06.05.2011 11:43:48]

#

Kiitoksia vinkistä ja sain selvitettyä mistä ongelma johtui. En ollut tehnyt tarkastusta minkälaisia tiedostoja luin muistiin niinpä muutama piilotiedosto oli päässyt listalle ja nämä kaatoivat ohjelman koska eivät olleet kuvamuotoa. Nyt enää on vain hoideltavana muutama pienempi ongelma.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta