Source/BubbleButtonDisplay.cs

(开头部分) 7KB

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

using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Drawing.Text;

namespace DevComponents.DotNetBar
{
	/// <summary>
	/// Represents class for displaying BubbleButton objects on canvas.
	/// </summary>
	internal class BubbleButtonDisplay
	{
		static int BUTTON_TOOLTIP_SPACING=3;
		/// <summary>
		/// Paints button on given canvas.
		/// </summary>
		/// <param name="info">Painting information.</param>
		public static void Paint(BubbleButtonDisplayInfo info)
		{
			if(!info.Button.Visible)
				return;

			CompositeImage image=null;
			Rectangle buttonRectangle=Rectangle.Empty;
			if(info.Magnified)
			{
				buttonRectangle=info.Button.MagnifiedDisplayRectangle;
				image=GetButtonImage(info.Button,buttonRectangle.Size);
			}
			else
			{
				buttonRectangle=info.Button.DisplayRectangle;
				image=GetButtonImage(info.Button,buttonRectangle.Size);
			}

            if (buttonRectangle.Width < 2 || buttonRectangle.Height < 2) return;

			if(image!=null)
			{
				if(!info.Button.Enabled)
					image.DrawImage(info.Graphics,buttonRectangle,0,0,image.RealWidth,image.RealHeight,GraphicsUnit.Pixel,GetDisabledAttributes());
				else if(info.Button.MouseDown)
					image.DrawImage(info.Graphics,buttonRectangle,0,0,image.RealWidth,image.RealHeight,GraphicsUnit.Pixel,GetDarkAttributes());
				else
					image.DrawImage(info.Graphics,buttonRectangle);
			}
			else
				info.Graphics.DrawRectangle(SystemPens.Highlight,buttonRectangle);
            
			if(info.Button.Focus)
			{
				buttonRectangle.Inflate(1,1);
				DesignTime.DrawDesignTimeSelection(info.Graphics,buttonRectangle,Color.Navy);
			}

			DrawTooltip(info);
		}

		public static CompositeImage GetButtonImage(BubbleButton button, Size size)
后面还有 164 行代码,解锁后查看完整代码

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

AI 解读 AI

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

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