Kreslení na PictureBox   otázka

VB.NET

V aplikaci vykresluji přes GDI vcelku složité grafy on-line získávaných dat. Chci se jen zeptat, zda-li existuje cesta, jak neřešit neustálé překreslování celé grafiky přes událost onPaint . Během času je zobrazených dat v grafech vcelku dost a překreslování je docela pomalé.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Existují v podstatě 3 možnosti:

- Použít událost Invalidated(ByVal Object, ByVal InvalidateEventArgs), která nastává při požadavku o překreslení části obrázku, ale vykreslovací logika je potom mnohem složitější.

- Použít WPF, které není nutné neustále překreslovat (pouze při změně zdrojových dat).

- Použít nějakou komponentu třetí strany.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zrovna tahle oblast je dosti specifická a zvolit nejlepší způsob vykreslování vyžaduje představu o tom, co, kdy, kam a jak často bude vykreslováno. Často lze přepsat pouze část obrázku, jen minimálně je potřeba generovat pokaždé nový snímek. Ve Vašem případě předpokládám, že graf je nějak závislý na čase. V tom případě navrhuji kreslit do bitmapy a vždy při překreslování jí posunout a dokreslit jen nová data.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Díky za info. Varianta kreslení do bitmapy se mi vcelku zamlouvá a vypadá to vcelku rozumně. WPF použít nemohu, jelikož by to znamenalo docela velký zásah do již hotových částí aplikace.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback