54 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Drawing;
 | |
| 
 | |
| namespace DevComponents.Tree.Display
 | |
| {
 | |
| 	/// <summary>
 | |
| 	/// Represents class that paints rectangular expand button.
 | |
| 	/// </summary>
 | |
| 	public class NodeExpandRectDisplay:NodeExpandDisplay
 | |
| 	{
 | |
| 		/// <summary>
 | |
| 		/// Draw rectangular type expand button.
 | |
| 		/// </summary>
 | |
| 		/// <param name="e">Expand button context information.</param>
 | |
|         public override void DrawExpandButton(NodeExpandPartRendererEventArgs e)
 | |
|         {
 | |
|             Rectangle expandPartBounds = e.ExpandPartBounds;
 | |
|             if (expandPartBounds.IsEmpty)
 | |
|                 return;
 | |
| 
 | |
|             expandPartBounds.Width--;
 | |
|             expandPartBounds.Height--;
 | |
| 
 | |
|             Brush brush = GetBackgroundBrush(e);
 | |
|             if (brush != null)
 | |
|             {
 | |
|                 e.Graphics.FillRectangle(brush, expandPartBounds);
 | |
|                 brush.Dispose();
 | |
|             }
 | |
| 
 | |
|             using (Pen pen = GetBorderPen(e))
 | |
|             {
 | |
|                 e.Graphics.DrawRectangle(pen, expandPartBounds);
 | |
|             }
 | |
| 
 | |
|             if (e.Node.Expanded)
 | |
|             {
 | |
|                 using (Pen pen = GetExpandPen(e))
 | |
|                 {
 | |
|                     e.Graphics.DrawLine(pen, expandPartBounds.X + 2, expandPartBounds.Y + expandPartBounds.Height / 2, expandPartBounds.Right - 2, expandPartBounds.Y + expandPartBounds.Height / 2);
 | |
|                 }
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 using (Pen pen = GetExpandPen(e))
 | |
|                 {
 | |
|                     e.Graphics.DrawLine(pen, expandPartBounds.X + 2, expandPartBounds.Y + expandPartBounds.Height / 2, expandPartBounds.Right - 2, expandPartBounds.Y + expandPartBounds.Height / 2);
 | |
|                     e.Graphics.DrawLine(pen, expandPartBounds.X + expandPartBounds.Width / 2, expandPartBounds.Y + 2, expandPartBounds.X + expandPartBounds.Width / 2, expandPartBounds.Bottom - 2);
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 	}
 | |
| }
 |