Your problem is that your property color does not change anything in graphics. Why do you think property mechanism was invented for? Mostly for side effect of the getter and event more importantly of the setter hidden behind the simple facade of assignment:
public class Lane
{
public Color Colour {
get { return GetColor(); }
set { SetColor(value); }
}
}
Now,
Color
vs
Brush
. If you need to provide the opportunity to paint something not in a single uniform color, you just have to use
Brush
, otherwise
Color
is better even if inside you use a
Brush
. Encapsulate and hide unwanted complexity from the outside user.
See
http://en.wikipedia.org/wiki/Facade_pattern[
^].
—SA