Nevím, jestli něco dělám špatně, ale zdá se mi, že GDI+ nějak nestíhá. Mám mapovou aplikaci (v Pictureboxu je obrázek mapy z mapového serveru - ale to je jedno) a mám funkci ZoomIN - tedy uživatel klikne do mapy, táhne myší, vykreslí obdelník a na základě toho mu mapový server zašle nový obrázek. A problém je právě v dynamickém vykreslování obdelníku. Je to trhané, ne plynulé, což je zrovna při operaci zoomIn značně nepohodlné pro uživatele. Čím to může být? Narazil jsem na hranici GDI+ nebo dělám něco neoptimálně či špatně? Zde je kód (část kódu): v konstruktoru formu:
zoomBitmap = new Bitmap(picMap.Width, picMap.Heigh);
zoomGraphic = Graphics.FromImage(zoomBitmap);
v picMap_MouseMove:
zoomBox = new Rectangle(startClickX, startClickY, e.X - startClickX, e.Y - startClickY);
zoomGraphic.Clear(Color.Transparent);
zoomGraphic.DrawRectangle(p, zoomBox);
picMap.Invalidate();
v picMap_Paint:
e.Graphics.DrawImage(zoomBitmap, 0, 0);
Díky.
|