Van de hoofdpanel van onze GIS-applicatie wil ik een screenshot maken, zodat deze in een preview venstertje kan worden weergegeven.
Bij het testen hiervan heb ik de bitmap netjes op schijf bewaard, en het resultaat is een keurige bitmap met het juiste resultaat.
De volgende stap is om de zojuist gegenereerde bitmap rechtstreeks op een preview panel te plaatsen. Hierbij ben ik enkele problemen tegengekomen.
Kort samengevat is dit het volgende wat ik doe:
Het resultaat is een lege previewpanel, niet goed dus.
Doe ik nu het volgende, dan gaat het wél goed:
Het resultaat is een previewpanel met een screenshot van de hoofdpanel.
Tuurlijk, zo werkt het ook wel, maar het is enorm slordig. Ik heb de bitmap api doorgelezen, maar kan niks interessants vinden waarmee ik het eerste stuk code werkende kan maken, zonder een save-tussenstap te maken.
Heeft iemand een idee?
Bij het testen hiervan heb ik de bitmap netjes op schijf bewaard, en het resultaat is een keurige bitmap met het juiste resultaat.
De volgende stap is om de zojuist gegenereerde bitmap rechtstreeks op een preview panel te plaatsen. Hierbij ben ik enkele problemen tegengekomen.
Kort samengevat is dit het volgende wat ik doe:
C#:
1
2
3
4
5
6
| Bitmap _previewBitMap; _previewBitmap = GetBitMap(GetMaximumExtents()); using (Graphics g = _previewPanel.CreateGraphics()) { g.DrawImage(_previewBitmap,this.ClientRectangle); } |
Het resultaat is een lege previewpanel, niet goed dus.
Doe ik nu het volgende, dan gaat het wél goed:
C#:
1
2
3
4
5
6
7
8
| Bitmap _previewBitMap; _previewBitmap = GetBitMap(GetMaximumExtents()); _previewBitmap.Save(@"c:\blaat.bmp",ImageFormat.Bmp); Bitmap bitmapje = new Bitmap(@"c:\blaat.bmp"); using (Graphics g = _previewPanel.CreateGraphics()) { g.DrawImage(bitmapje,this.ClientRectangle); } |
Het resultaat is een previewpanel met een screenshot van de hoofdpanel.
Tuurlijk, zo werkt het ook wel, maar het is enorm slordig. Ik heb de bitmap api doorgelezen, maar kan niks interessants vinden waarmee ik het eerste stuk code werkende kan maken, zonder een save-tussenstap te maken.
Heeft iemand een idee?