Witam,
mam problem natury wydajnościowej. Potrzebuję rysować wiele tysięcy kształtów na ekranie (nawet do 50 tys.), które miałyby działać tak jak działają przyciski (buttony). Każdy z tych kształtów składałby się z jakiejś liczby elementów składowych (linie, elipsy) bądź byłby po prostu zwykłą linią (ogólnie są to symbole elektryczne takie jak np. kondensator). Oprócz tego zależy mi na tym, aby każdy z tych elementów można było przeciągać po płótnie za pomocą myszki, robić przybliżenie oraz oddalenie, nawigować po samym płótnem (które chciałbym, żeby sprawiało wrażenie "nieskończonego"), a także żeby była możliwość zaznaczania wielu elementów jednocześnie.
Przeglądając sieć natrafiłem na takie rozwiązanie: http://www.codeproject.com/Articles/85603/A-WPF-custom-control-for-zooming-and-panning które jest mniej-więcej tym czego potrzebuję, jednak przy większej liczbie elementów na ekranie (np. gdy robię oddalenie) wyraźnie odczuwalny jest spadek wydajności. Stąd moje pytanie: czy jest jakieś zagadnienie z którym powinienem się zapoznać, aby udało mi się osiągnąć większa wydajność? Programuję w C# i sam projekt chciałem realizować przy użyciu WPF.
Jakim klasom powinien się przyjrzeć, jakie kontrolki zapewniają dużą wydajność przy tego typu zadaniach?
W internecie można natrafić również na opinie sugerujące, że np. biblioteka SharpGL zapewni sporą wydajność - z drugiej jednak strony nie miałem z czymś takim wcześniej styczności i nie chciałbym utknąć w miejscu na długi czas, jeśli jednak to rozwiązanie miałoby być tym idealnym to oczywiście na nie się zdecyduję, choć gdyby udało się osiągnąć oczekiwany efekt przy użyciu samego WPF to byłbym bardziej zadowolony.
Jak wygląda sytuacja w przypadku użycia innych technologii?
Jakieś sugestie? Gdzie powinienem szukać informacji? Z czym się zapoznać?
Z góry dziękuje za pomoc!