Source/SplitterMozillaPainter.cs

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;

namespace DevComponents.DotNetBar
{
	/// <summary>
	/// Represents painter for Mozilla style splitter.
	/// </summary>
	internal class SplitterMozillaPainter:SplitterPainter
	{
		/// <summary>
		/// Creates new instance of splitter painter.
		/// </summary>
		public SplitterMozillaPainter(){}

		#region Painting
		/// <summary>
		/// Paints splitter.
		/// </summary>
		/// <param name="info">Paint information.</param>
		public override void Paint(SplitterPaintInfo info)
		{
			int gripWidth=42;
			int spacing=8;
			Rectangle r=info.DisplayRectangle;
			Graphics g=info.Graphics;

			PaintBackground(info);

			if(info.Dock==DockStyle.Top || info.Dock==DockStyle.Bottom)
			{
				if(info.DisplayRectangle.Width-ArrowSize*2<gripWidth)
				{
					gripWidth=info.DisplayRectangle.Width-ArrowSize*2;
					if(gripWidth<0)
						gripWidth=info.DisplayRectangle.Width;
				}
				
				Point pStart=new Point(r.X+(r.Width-gripWidth)/2,r.Y+(r.Height-5)/2);
				SolidBrush brushLight=new SolidBrush(info.Colors.GripLightColor);
				SolidBrush brushDark=new SolidBrush(info.Colors.GripDarkColor);
				for(int i=pStart.X;i<pStart.X+gripWidth;i+=3)
				{
					g.FillRectangle(brushLight,i,pStart.Y+3,1,1);
					g.FillRectangle(brushDark,i+1,pStart.Y+4,1,1);
					g.FillRectangle(brushLight,i+1,pStart.Y,1,1);
					g.FillRectangle(brushDark,i+2,pStart.Y+1,1,1);
				}
				brushLight.Dispose();
				brushDark.Dispose();
				if(info.Expandable)
				{
					Point p=new Point(r.X+(r.Width-gripWidth)/2-this.ArrowSize-spacing,r.Y+(r.Height-ArrowSize/2)/2);
					this.PaintArrow(p,info);
					p.Offset(gripWidth+spacing*2+ArrowSize,0);
					this.PaintArrow(p,info);
				}
			}
后面还有 34 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。