So I am currently creating a Paint-like application for sports. You will some "shapes" for each type of sport (balls/baskets in basketball, pucks/goals in hockey etc.).
Now my main problem is how I should go about designing these shapes. As I understand it there are mainly 3 options:
- Custom Control with ControlTemplate
- UserControl
- POCO-Object (ViewModel) for property storage, DataTemplate for visual representation
I have the following requirements for the Shape-objects:
- Should be easily serializable (to save as XML etc.)
- Should be able to have adorners attached to them (for purposes of resizing etc.)
- Should be extensible/modifiable (provide different visual styles for them etc.)
- Should provide some default value mechanism for the properties
Which option would fit my requirements best?