private void UpdatePen(Brush brush) { Pen result; switch (Type) { case EdgeType.ConditionalFlow: case EdgeType.DefaultFlow: case EdgeType.SequenceFlow: default: result = new Pen(brush, 1); break; case EdgeType.Association: case EdgeType.DirectedAssociation: case EdgeType.BidirectedAssociation: result = new Pen { Brush = brush, DashStyle = DashStyles.Dot, DashCap = PenLineCap.Round }; break; case EdgeType.MessageFlow: result = new Pen { Brush = brush, DashStyle = DashStyles.Dash }; break; case EdgeType.Conversation: result = new Pen { Brush = brush, Thickness = 3, LineJoin = PenLineJoin.Round }; break; } delegateStyle.Pen = (Pen)result.GetAsFrozen(); }