Source/SplitterPainter.cs

(开头部分) 4KB

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

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

namespace DevComponents.DotNetBar
{
	/// <summary>
	/// Base class for painting expandable splitter control.
	/// </summary>
	internal abstract class SplitterPainter
	{
		#region Private Variables
		private int m_ArrowSize=6;
		#endregion

		/// <summary>
		/// Default constructor.
		/// </summary>
		public SplitterPainter()
		{
		}

		#region Methods
		/// <summary>
		/// Paints splitter.
		/// </summary>
		/// <param name="info">Paint information.</param>
		public virtual void Paint(SplitterPaintInfo info)
		{
		}

		protected virtual void PaintArrow(Point p, SplitterPaintInfo info)
		{
			System.Drawing.Drawing2D.GraphicsPath path=UIGraphics.GetTrianglePath(p,ArrowSize,this.GetDirection(info));
			if(!info.Colors.ExpandFillColor.IsEmpty)
			{
				using(SolidBrush brush=new SolidBrush(info.Colors.ExpandFillColor))
					info.Graphics.FillPath(brush,path);
			}
			if(!info.Colors.ExpandLineColor.IsEmpty)
			{
				using(Pen pen=new Pen(info.Colors.ExpandLineColor,1))
					info.Graphics.DrawPath(pen,path);
			}
			path.Dispose();
		}

		protected eTriangleDirection GetDirection(SplitterPaintInfo info)
		{
			if(info.Dock==DockStyle.Top && info.Expanded || info.Dock==DockStyle.Bottom && !info.Expanded)
			{
				// Points up
				return eTriangleDirection.Top;
			}
			else if(info.Dock==DockStyle.Top && !info.Expanded || info.Dock==DockStyle.Bottom && info.Expanded)
			{
				// Points down
				return eTriangleDirection.Bottom;
			}
			else if(info.Dock==DockStyle.Left && info.Expanded || info.Dock==DockStyle.Right && !info.Expanded)
后面还有 112 行代码,解锁后查看完整代码

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

AI 解读 AI

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

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