DrawImage a windows XP

1

mam taki kod który przerysowuje obrazki na panelach

 

     Panel[] pGrafE1 = new Panel[6];
.
.
.
.


             if (size1 == 1)
                    {
                        ZoomImg(Lbmp1E[n], LgrapE[n], size1);
                    }
                    pGrafE1[n].BackgroundImage = Lbmp1E[n];


.
.
.

        public void ZoomImg(Bitmap bmp, Graphics Grap, short S)
        {
            if (S == 1)
            { zoom = 28; }
            else{zoom=8;}
            Grap.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
            Grap.DrawImage(bmp, 0, -zoom, bmp.Width, bmp.Height + zoom + zoom);

        }

problem w tym że pod win7 to działa a pod xp już nie
co może być problemem ?

0

kod jest ogólnie brzydki, dlaczego piszesz

if (S == 1)
{ zoom = 28; }
else{zoom=8;}

a nie

if (S == 1)
    zoom = 28;
else
    zoom = 8;

(już pomijając wątpliwą sensowność tego parametru S)

ale co to znaczy "działa a pod xp już nie"?
jaki błąd?
sprawdzałeś czy Grap i bmp na pewno nie są null?

0

pisze tak a nie inaczej ponieważ

  1. taki zapis nie jest błędny
  2. kod jest ciągle rozwijany a taki zapis przyspiesza ewentualną edycję

nie pytałem o parametr S

błędu nie ma żadnego Grap i bmp nie są null po prostu obrazek się nie przerysowuje (skalowanie)

Grap.DrawImage(bmp, 0, -zoom, bmp.Width, bmp.Height + zoom + zoom);

tylko dlaczego akurat na xp nie działa a rysuje pod 7

1 użytkowników online, w tym zalogowanych: 0, gości: 1