Postanowiłem zrobić małą konkurencję dla SunRiver'a, ale nie będę mu wchodził w kompetencje i pokaże Wam możliwości WPF.
Na początek podzielę się źródłami moich eksperymentów nad kontrolką WPF - wskaźnik analogowy (wskazówkowy), można tego użyć na różne sposoby (woltomierz, termometr czy inne wynalazki z ADC).
Poza tym co widać na obrazku mój wskaźnik ma wbudowany dość ciekawie wyglądający efekt przyspieszenia (i opóźnienia) wskazówki. Przyspieszenie/opóźnienie jest regulowane.
W projekcie jest dużo uproszczeń, niektóre rzeczy pewnie zrobiłem niefachowo bo to jest pierwsza rzecz jaką robiłem w WPF, ale dzięki temu może łatwiej będzie ogarnąć taki kod komuś kto nie ma za dużo styczności z programowaniem w C#.
Nie będę się rozpisywał nad kodem, bo nie wiem czy jest sens i czy w ogóle znajdzie się ktoś zainteresowany taką kontrolką czy ogólnie WPF-em.
Zalety:
- prostota (kontrolka jest w 2 plikach: .cs i jeden .xaml)
- działa stabilnie i wydajnie
Do zrobienia / wady:
- nie ma cyferek na tarczy
- są tylko 2 właściwości - wartość i inercja
- nie ma możliwości zmiany wymiarów (wskaźnik ma po prostu 200x200px)
- "prawdziwa" inercja (wskazówka nie wybiega poza wartość jak w prawdziwym woltomierzu, zastosowałem proste przyspieszenie i opóźnienie wskazówki)
Używam tego "mini projektu" jako bazy do różnych programów pisanych na zamówienie. Kiedyś miała z tego powstać super-uniwersalna kontrolka w której wszystko można poustawiać za pomocą własciwości, ale doszedłem do wniosku że z pisaniem takiej super-uniwersalnej kontrolki będzie 10 razy więcej pracy, niż z ręcznym dostosowywaniem jej za każdym razem do każdego projektu.
Może komuś sie będzie chciało to rozwinąć, może zrobimy z tego jakiś projekt typu "wewnętrzne forumowe open-source". Ja niestety mam za dużo projektów na głowie żeby się tym na poważnie zająć.
W załączniku z długą nazwą jest kompletna solucja pochodząca z Visual Studio 2008 i plik demo. W nowszych wersjach Visual Studio solucja powinna się zaimportować bez problemu. Solucja zawiera 2 projekty - jeden z kontrolką (kompiluje się do pliku DLL), drugi z programem w którym użyta jest kontrolka.
Drugi załącznik to spakowany wynikowy plik exe.