Пример #1
0
		/// <summary>
		/// Draw the border of the node.
		/// </summary>
		/// <param name="graphics">The grpahics object we render to.</param>
		/// <param name="boundingBox">The untransformed bounding box of the node.</param>
		/// <param name="pen">The pen we use.</param>
		protected virtual void DrawShapeBorder(Graphics graphics, RectangleF boundingBox, Pen pen)
		{
			switch(_shape)
			{
				case(NodeShape.Rectangle):
					graphics.DrawRectangle(pen, boundingBox.X, boundingBox.Y, boundingBox.Width, boundingBox.Height);
				break;

				case(NodeShape.Ellipse):
					graphics.DrawEllipse(pen, boundingBox);
				break;

				case(NodeShape.Capsule):
				case(NodeShape.RoundedRectangle):
					float radius= _shape ==NodeShape.RoundedRectangle ? 10.0f: boundingBox.Height;

					System.Drawing.Extended.ExtendedGraphics extended= new System.Drawing.Extended.ExtendedGraphics(graphics);

					extended.DrawRoundRectangle(pen, boundingBox.X, boundingBox.Y, boundingBox.Width, boundingBox.Height, radius);
				break;

				default: throw new Exception(Resources.ExceptionUnhandledNodeShape);
			}
		}
Пример #2
0
		/// <summary>
		/// Draws the background and shape of the node
		/// </summary>
		/// <param name="graphics">The grpahics object we render to.</param>
		/// <param name="boundingBox">The untransformed bounding box of the node.</param>
		/// <param name="brush">The brush used for the background.</param>
		public virtual void DrawShapeBackground(Graphics graphics, RectangleF boundingBox, Brush brush)
		{
			switch(_shape)
			{
				case(NodeShape.Rectangle):
					graphics.FillRectangle(brush, boundingBox);
				break;

				case(NodeShape.Ellipse):
					graphics.FillEllipse(brush, boundingBox);
				break;

				case(NodeShape.Capsule):
				case(NodeShape.RoundedRectangle):
					float radius= _shape ==NodeShape.RoundedRectangle ? 10.0f: boundingBox.Height;

					System.Drawing.Extended.ExtendedGraphics extended= new System.Drawing.Extended.ExtendedGraphics(graphics);

					extended.FillRoundRectangle(brush, boundingBox.X, boundingBox.Y, boundingBox.Width, boundingBox.Height, radius);
				break;

				default: throw new Exception(Resources.ExceptionUnhandledNodeShape);
			}
		}