Ik ben bezig met het bouwen van een previewpanel waarin ik een overzicht kan zien van de geladen kaarten in een geografisch informatie systeem.

De bitmap in de previewpanel is een snapshot van het ActiveX component in het midden van het scherm, waarbinnen alle geladen kaarten vallen.
De rode border in het midden van de previewmap stelt de weergave van de hoofdpanel voor. Als ik deze wil verslepen, dan moet de rode lijn opnieuw getekend worden.
Zoals ik het nu heb geimplementeerd schokt het previewkaartje gigantisch als ik de rode border versleep. Dit komt omdat de bitmap achtergrond ook op het Graphics object van de panel is getekend, en telkens gerefreshed wordt. Dit is noodzakelijk, omdat de rode border ook opnieuw getekend moet worden.
Nu heb ik geprobeerd om de bitmap als achtergrond (panel.BackGroundImage) te laden, maar dit geeft de volgende problemen:
- De bitmap moet precies in het midden van de panel getekend worden, dat betekent dat ik een nieuwe bitmap moet creëren met precies dezelfde afmetingen als de panel, met als gevolg een weergave die alles behalve vloeiend verloopt bij het resizen
- Wanneer de preview panel geresized wordt, moet de bitmap opnieuw gecreëerd worden, omdat deze zo groot mogelijk op de panel weergegeven dient te worden, maar in de juiste proporties. Wanneer deze bitmap als achtergrond wordt geladen, zie je een fractie van een seconde een kopie van de bitmap naast de previewbitmap liggen. Dat komt omdat een achtergrondbitmap niet éénmaal op het scherm wordt geplaatst, maar oneindig vaak naast elkaar en onder elkaar.
De bitmap als backgroundimage laden is dus geen optie.
Ik ben op zoek naar een oplossing waarbij ik alleen de rode border hoef te refreshen, en dus niet de bitmap. Ik zat te denken om twee panels over elkaar heen te tekenen, waarvan de bovenste een opacity heeft van 0%, maar helaas kun je geen panel afzonderlijk de opacity van instellen.
Wie weet een mogelijkheid om twee verschillende graphics objecten bij te houden, die over elkaar liggen, zodat ik de bitmap of de border afzonderlijk kan refreshen?

De bitmap in de previewpanel is een snapshot van het ActiveX component in het midden van het scherm, waarbinnen alle geladen kaarten vallen.
De rode border in het midden van de previewmap stelt de weergave van de hoofdpanel voor. Als ik deze wil verslepen, dan moet de rode lijn opnieuw getekend worden.
Zoals ik het nu heb geimplementeerd schokt het previewkaartje gigantisch als ik de rode border versleep. Dit komt omdat de bitmap achtergrond ook op het Graphics object van de panel is getekend, en telkens gerefreshed wordt. Dit is noodzakelijk, omdat de rode border ook opnieuw getekend moet worden.
Nu heb ik geprobeerd om de bitmap als achtergrond (panel.BackGroundImage) te laden, maar dit geeft de volgende problemen:
- De bitmap moet precies in het midden van de panel getekend worden, dat betekent dat ik een nieuwe bitmap moet creëren met precies dezelfde afmetingen als de panel, met als gevolg een weergave die alles behalve vloeiend verloopt bij het resizen
- Wanneer de preview panel geresized wordt, moet de bitmap opnieuw gecreëerd worden, omdat deze zo groot mogelijk op de panel weergegeven dient te worden, maar in de juiste proporties. Wanneer deze bitmap als achtergrond wordt geladen, zie je een fractie van een seconde een kopie van de bitmap naast de previewbitmap liggen. Dat komt omdat een achtergrondbitmap niet éénmaal op het scherm wordt geplaatst, maar oneindig vaak naast elkaar en onder elkaar.
De bitmap als backgroundimage laden is dus geen optie.
Ik ben op zoek naar een oplossing waarbij ik alleen de rode border hoef te refreshen, en dus niet de bitmap. Ik zat te denken om twee panels over elkaar heen te tekenen, waarvan de bovenste een opacity heeft van 0%, maar helaas kun je geen panel afzonderlijk de opacity van instellen.
Wie weet een mogelijkheid om twee verschillende graphics objecten bij te houden, die over elkaar liggen, zodat ik de bitmap of de border afzonderlijk kan refreshen?