Description: The attached example solution contains two projects: the ShapeEditorLibrary, containing the basic shape editor classes, and the ShapeEditorExampleVs2008 project, containing the form you see in the screenshot, including the property grid + selection combobox logic. As you can see, this is separated from the ShapeEditorLibrary so you can implement it completely differently if you want.
The most important classes in the ShapeEditorLibrary are the Shape, Canvas and ShapeCollection classes.
The Shape class is an abstract class and implements most of the basic methods and properties that every Shape will have. In order to create your own Shapes, you can create a class that inherits Shape, and override the Draw method to provide your own drawing. If you want a Triangle shape, you implement the drawing such that it looks like a triangle. There is a RectangleShape and EllipseShape already included in the example so you can take a look how you do that
To Search:
File list (Check if you may need any files):
Properties
..........\AssemblyInfo.cs
..........\Resources.Designer.cs
..........\Resources.resx
Resources
.........\btnBack.png
.........\btnDrag.png
.........\btnFitToScreen.png
.........\btnNext.png
.........\btnOpen.png
.........\btnPreview.png
.........\btnRotate270.png
.........\btnRotate90.png
.........\btnSelect.png
.........\btnZoomIn.png
.........\btnZoomOut.png
.........\Drag.cur
.........\Grab.cur
.........\Thumbs.db
GifImage.cs
KP-DrawEngine.cs
KP-DrawObject.cs
KP-ImageViewerV2.cs
KP-ImageViewerV2.csproj
KP-ImageViewerV2.csproj.user
KP-ImageViewerV2.Designer.cs
KP-ImageViewerV2.resx
KP-ImageViewerV2.sln
KP-ImageViewerV2.suo
MultiPageImage.cs
PanelDoubleBuffered.cs