the text on the control is embossed, i.e. drawn twice in two different colors (foreground and shadow), there is an offset between both drawings and their intersection is drawn in the background color
the control has the following properties: Text, Font, BackgroundColor, ForegroundColor, ShadowColor, EmbossDirection, EmbossDepth
Custom control for editing the direction:
the control contains a circle and a line heading in one of the eight directions (N, NE, E, SE, S, SW, W and NW)
the control has the following properties: Direction, ForegroundColor and BackgroundColor - the control is drawn according to these settings
the direction can be changed by clicking with the mouse on the control
after the direction has changed, custom DirectionChanged event occurs
Application design and behavior
main window with both custom controls lying on it, and a NumericUpDown control for changing the emboss value
in the run-time only: changing the direction on the second control and the emboss value in the NumericUpDown control causes the change of the text emboss (implement proper handling of the DirectionChanged custom event)
Implementation details:
Custom Controls (inherited from System.Windows.Forms.Control)
the controls are available on the toolbox
both custom controls should look the same in the run-time and design-time mode (the text should be embossed in the designer as well)
change of any custom property should refresh the control (during editing in Visual Studio);
use double buffering to avoid flickering
all the properties and events of the controls should have a description in the designer
Hints:
classes, methods, properties:
BrowsableAttribute
CategoryAttribute
DefaultValueAttribute
DescriptionAttribute
Component.DesignMode
Graphics.DrawString, StringFormat
Region, GraphicsPath
Approximate points:
Embossed text control 4.0
Direction control 4.0
Application functionality (communication between the controls) 2.0