GoSimpleNode multiple GoImages

What is the best way to have GoSimpleNode display multiple icons?
For example, I wanted to show small error status icon(8x8) on top of node(32x32) icon at the bottom-left corner, if node configuration has some error in it. Node icon is fixed sized and non-re sizable.

Try this:


using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Resources;
using System.Windows.Forms;
using Northwoods.Go;
namespace Demo1 {
/// An example node class.
/// It has a context menu.
/// Its label is unique among all GraphNodes in the same document.
/// It can be edited in the Node Properties grid.

public class SimpleNodeWithIcon : GoSimpleNode {
public SimpleNodeWithIcon(){
public void AddDecoration(string name) {
GoImage image = new GoImage();
image.Selectable = false;
image.Name = name;
InsertAfter(this.Icon, image);
myDecoration = image;
// this field keeps track of the decoration
private GoImage myDecoration = null;
// update the field to refer to the copied decoration if the node is copied
protected override void CopyChildren(GoGroup newgroup, GoCopyDictionary env) {
base.CopyChildren(newgroup, env);
SimpleNodeWithIcon node = (SimpleNodeWithIcon)newgroup;
node.myDecoration = (GoImage)env[myDecoration];
// this property is for convenience in accessing the decoration
public GoImage Decoration {
get { return myDecoration; }
// position the BottomRight of the decoration's Label to be just
// above this node's Background, aligned with the right edge of this node's Label
public override void LayoutChildren(GoObject childchanged) {
GoImage dec = this.Decoration;
if (dec != null && this.Icon != null) {
dec.SetSpotLocation(BottomLeft, this.Icon, BottomLeft);

Perfect. Thanks for the comprehensive code segment.