Подлый способ, которым я раньше занимался, это создать собственный элемент управления, удалить фон из него и нарисовать на нем мои формы и размеры. Затем вы можете легко реализовать выделение (переопределить OnClick), перетаскивая и изменяя размер (OnMouseDown, OnMouseMove, OnMouseUp). Затем можно реализовать такие параметры, как цвет и т. Д., С помощью свойства (см. Атрибут Browsable и get / setters свойства) и элемента управления PropertyGrid.
Что-то кроме этого - кривые Безье и тому подобное - понадобится что-то чуть более продвинутое.
Альтернатива состоит в том, чтобы использовать только такие элементы управления для маркеров размеров и выполнять весь рисунок на одном центральном холсте - единственный недостаток в этом случае - выяснить, как выбрать форму на холсте.