Krzysztof Mossakowski
Programowanie w środowisku Windows
2006 - Zadania
Windows Forms: zasoby, własne kontrolki
Własna kontrolka
Kontrolka wyświetlająca bitmapę obciętą wybraną krzywą:
krzywa zawsze jest wyznaczana przez 4 punkty
punkty są łączone prostymi (Poligon) lub krzywymi (Spline)
wszystkie 4 punkty zawsze leżą wewnątrz obszaru kontrolki
Szczegóły implementacji:
kontrolka Custom Control (dziedziczy po System.Windows.Forms.Control)
kontrolka posiada włąsną ikonę widoczną po osadzeniu jej na toolboxie (rys. 1)
kontrolka posiada 3 właściwości: ClipRegionType, Points, SourceImage (rys. 2/3)
ClipRegionType - sposób łączenia punktów, dostępne opcje to Spline (domyślna) i Polygon
Points - typ Point[4], specjalny sposób edycji opisany poniżej
SourceImage - typ Image, wyświetlany obrazek
wszystkie właściwości powinny należeć do sekcji
Image
, wszystkie powinny mieć opis (widoczny na rys. 3)
zmiana dowolnej z 3 właściwości powoduje odświeżenie kontrolki w trybie edycji
w trybie edycji kontrolka posiada tło w kolorze Color.Pink
rysowana z AntiAliasingiem i podwójnym buforowaniem
Edytor właściwości
Points
:
edytor dla
property
określa atrybut
Editor
klasa edytora dziedziczy po
UITypeEditor
należy nadpisać metody
EditValue
GetEditStyle (pożądany styl to UITypeEditorEditStyle.DropDown)
kontrolka użyta do edycji jest tego samego typu co kontrolka, którą edytujemy !!!
sposób działania (rys. 4)
przesuwanie 4 punktów w obrębie obszaru kontrolki
dwuklik wewnątrz obszaru - zmiana trybu Spline/Polygon
Sugestie:
klasy, metody, właściwości:
ToolboxBitmapAttribute
BrowsableAttribute
CategoryAttribute
DefaultValueAttribute
DescriptionAttribute
EditorAttribute
Component.DesignMode
UITypeEditor class
do zaniedbania
brak odświeżania po zmianie współrzędnych punktów w
property grid