protected override void Shape(T item, bool flip) { var x = Positions.X.Map(item); var y = Positions.Y.Map(item); var width = Selectors.Width(item); var height = Selectors.Height(item); var rectangle = new Rectangle { X = x, Y = y, Width = width, Height = height, Aesthetic = Aesthetic }; if (OnClick != null) { rectangle.OnClick = e => OnClick(item, e); } if (OnMouseOver != null) { rectangle.OnMouseOver = e => OnMouseOver(item, e); } if (OnMouseOut != null) { rectangle.OnMouseOut = e => OnMouseOut(item, e); } Layer.Add(rectangle); Positions.X.Position.Shape(x, x + width); Positions.Y.Position.Shape(y, y + height); }