Introduction
This article demonstrates how to create a perfect, useless control using C# WinForms and .NET 2.0. The control uses pure managed code, and all visual elements can be adjusted through its properties.
Background
Is it not all developer's deepest desire to create something living? Well, not me! This was solely to have fun playing with the graphics. So, don't expect to see a mouth, nose, or brains in the future.
The Graphics
Above are the basic elements of the eye: background, iris, shadow, pupil, reflex, and the eye-lid. The eye is drawn in this order.
Architecture
The Eye
is a single class that inherits from the System.Windows.Forms.Control
. Below are the properties and methods of the Eye
class.
Using the Code
Using the Eye
class is straightforward, but some properties may need some explanation.
The detailed iris is done using a color blend:
using (var path = new GraphicsPath())
{
path.AddEllipse(rect);
using (var gradientBrush = new PathGradientBrush(path))
{
gradientBrush.CenterPoint = centerPoint;
var cb = new ColorBlend(4)
{
Colors = irisColors,
Positions = new[] { 0.0F, 0.05F, 0.1F, 1.0F }
};
if (cb.Colors == null) return;
gradientBrush.InterpolationColors = cb;
g.FillPath(gradientBrush, path);
}
}
Points of Interest
I attempted to squeeze the iris rectangle to make it more eye-like when going to the edge, but it never quite looked right.
History and Credits
This is the first version - 1.0.