OK, I have implemented some classes for implementing Sequence diagrams: Lifeline, Activation, and Message.
The Lifeline class has a header, a dashed line GoStroke extending downwards, a LifelinePort that is smart about Messages (links) that connect to it, and any number of Activations.
The Activation class is basically a GoRectangle that knows what steps it begins at and ends at. Lifeline.LayoutChildren positions its Activation children appropriately along the lifeline. The user can resize Activations, but only vertically; such resizes also update the Begin and End properties.
The Message class is a GoLabeledLink that has a Step property, so that it knows what vertical position it should have.
Here's a screenshot:
And here's the code to create the above diagram:
[code] Lifeline fred = new Lifeline("Fred : Patron");
Lifeline bob = new Lifeline("Bob : Waiter");
Lifeline hank = new Lifeline("Hank : Cook");
Lifeline renee = new Lifeline("Renee : Cashier");
doc.Add(new Message(0, fred, bob, "order food", 2));
doc.Add(new Message(1, bob, hank, "order food", 2));
doc.Add(new Message(2, bob, fred, "serve wine", 1));
doc.Add(new Message(3, hank, bob, "pickup", 1));
doc.Add(new Message(4, bob, fred, "serve food", 1));
doc.Add(new Message(5, fred, renee, "pay", 1));
fred.Left = 20;
bob.Left = fred.Right+30;
hank.Left = bob.Right+30;
renee.Left = hank.Right+30;[/code]