2.4: Planogrammer screen shot

This is a small screen shot taken from the Planogrammer sample application. The GoView.BackgroundLayer has a GoSheet, because GoView.BackgroundHasSheet was set to true, and the GoView.SheetStyle is GoViewSheetStyle.Sheet.
On the sheet you can see a couple of Racks and Shelves, some of which hold Items. These are example classes inheriting from GoGroup that are defined in the sample app.
The Item class has a GoRectangle, a GoImage, and a GoText in it, although for this sample there are no images shown. The Location property has been overridden to correspond to the BottomLeft spot, so that Items, when snapped to a Shelf’s grid, will appear to be sitting on the shelf.
Rack and Shelf each have a GoGrid in them, along with a GoText as a Label. The grid has been customized by overriding CanSnapPoint, so that only Item objects are snapped, but other Racks or Shelves are not snapped.
The Rack and Shelf classes also override OnEnterLeave, so that there is feedback when the user drags something that might be added to the rack or shelf. They also override OnSelectionDropped, so that when the GoView.Selection is dropped, the rack or shelf can consider adding those objects as new children of the group.