Krzysztof Mossakowski
Programowanie w środowisku Windows
2007 - Zadania
Własne kontrolki
Kwiatek
Opis działania:
kontrolka umożliwiająca umieszczenie na formularzu kwiatka
obrazek kwiatka pochodzi z zasobów kontrolki, należy użyć
tego obrazka
kontrolka umożliwia
korekcję gamma
dla pokazywanego obrazka
Szczegóły:
kontrolka dziedziczy po
System.Windows.Forms.Control
kontrolka zawsze wyświetla kwiatek dopasowany do rozmiarów okna, tło obrazka jest przeźroczyste
kontrolka udostępnia jedną dodatkową właściwość -
Gamma
, typu
float
Gamma przyjmuje wartości tylko z zakresu od 0.5 do 5.0 (wartości z poza tego zakresu należy sprowadzić do najbliższej wartości brzegowej)
zmiana wartości właściwości skutkuje odswieżeniem obrazka
właściwość jest widoczna w
Properties Window
w sekcji
Appearance
właściwość ma zdefiniowany opis oraz wartość domyślną równą 1.0
właściwość posiada własny typ edytora (patrz poniżej)
wyświetlanie obrazu kwiatka odbywa się z wartością korekcji gamma wskazywaną właściwością
Gamma
należy uniemożliwić zmianę wartości właściwości
BackColor
,
ForeColor
,
BackgroundImage
oraz
BackgroundImageLayout
właściwości
BackgroundImage
oraz
BackgroundImageLayout
nie mogą być również widoczne w
Properties Window
właściwości
BackColor
i
ForeColor
maja być widoczne w
Properties Window
tylko do odczytu
właściwości
BackColor
i
ForeColor
muszą zawsze zwracać wartość
Color.Transparent
należy również stworzyć formularz wykorzystujący nową kontrolkę
jako tło formularza testowego proszę użyć
tego obrazka
Edytor właściwości
Gamma
:
klasa dziedzicząca po
System.Drawing.Design.UITypeEditor
kontrolka edytora
rysunek kwiatka (rozmiaru ~200 x 200)
TrackBar
do zmiany współczynnika korekcji gamma
zmiana współczynnika w zakresie 0.5 - 5.0 ze skokiem 0.1
po zmianie wartości TrackBar'a odświeżany jest tylko rysunek na formularzu edytora
po kliknięciu poza formularz edytora lub wciśnięciu Enter/ESC formularz edytora zostaje zamknięty
po zamknięciu formularza edytora aktualizowany jest rysunek w kontrolce
kontrolka edytora jest pokazywana zgodnie ze stylem edycji
UITypeEditorEditStyle.DropDown
Wskazówki:
EditorAttribute, CategoryAttribute, DefaultValueAttribute, DescriptionAttribute
BrowsableAttribute, ReadOnlyAttribute
Control.SetStyle(), ControlStyles.SupportsTransparentBackColor
UITypeEditor class, UITypeEditor.GetEditStyle(), UITypeEditor.EditValue()
ImageAttributes class, ImageAttributes.SetGamma(), Graphics.DrawImage()
Przybliżona punktacja:
rozszerzona/zmodyfikowana kontrolka: 4.5
edytor typu: 4.5
formularz prezentujący możliwości kontrolki: 1.0
Linki do przesyłania (hasło jest takie samo, jak do wyników):
Rozwiązania podczas zajęć laboratoryjnych
Późniejsze poprawy