UITypeEditor
Rozszerzenie możliwości standardowej kontrolki, edytor typu
- Opis:
- dodanie właściwości odpowiedzialnych za wyświetlanie informacji o prawach autorskich do zdjęcia
- stworzenie edytora dla typu enumeratora nowo stworzonej właściwości

- Funkcjonalność:
- rozszerzenie możliwości standardowej kontrolki
- kontrolka dziedzicząca po PictureBox
- należy stworzyć 2 nowe właściwości
- TextColor - typu Color, domyślna wartość Color.Red
- Corner - typu Corner, domyślna wartość Corner.None, gdzie Corner to:
public enum Corner {NW, NE, SW, SE, None }
- należy nadpisać właściwość Text i tak ją skonfigurować za pomocą atrybutów, aby
była widoczna w zakładce właściwości w sekcji "Copyright" (domyślnie nie jest widoczna)
- znaczenie wartości właściwości
- Text - informacja o prawach autorskich
- TextColor - kolor napisu
- Corner - narożnik w którym będzie wyświetlana informacja lub informacja o wstrzymaniu wyświetlania
- wyświetlanie należy zrealizować nadpisując metodę OnPaint kontrolki bazowej
- tekst należy renderować z użyciem anti-aliasu
- typ Corner posiada własny edytor typu
- klasa edytora dziedziczy po UITypeEditor
- związany z właściwością poprzez atrybut EditorAttribute
- styl edycji UITypeEditorEditStyle.DropDown
- wizualizacja - formularz z czterema przyciskami (zdjęcie poniżej),
kliknięcie jednego z nich powoduje wybranie odpowiedniej wartości dla właściwości i zamknięcie dialogu
- zamknięcie dialogu poprzez kliknięcie poza jego obszarem oznacza wybranie wartości Corner.None
- przyciski edytora mają kolor jasno niebieski, aktualny wybór oznaczony jest kolorem czerwonym,
jasno czerwony kolor posiada przycisk, nad którym aktualnie znajduje się kursor myszy
- wszystkie właściwości znajdują się w kategorii Copyright
- zmiana wartości właściwości z kategorii Copyright powoduje odrysowanie kontrolki

- należy również stworzyć formularz wykorzystujący nową kontrolkę
- Wskazówki:
- EditorAttribute
- BrowsableAttribute, CategoryAttribute, DefaultValueAttribute
- UITypeEditor, UITypeEditor.EditValue(), UITypeEditor.GetEditStyle()
- UITypeEditorEditStyle.DropDown
- Graphics.TextRenderingHint
- Przybliżona punktacja:
- rozszerzona kontrolka: 4.0
- edytor typu: 5.0
- formularz prezentujący możliwości kontrolki: 1.0