Source/Ribbon/Office2003ButtonItemPainter.cs
(开头部分) 32KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Drawing.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar.Rendering;
namespace DevComponents.DotNetBar
{
/// <summary>
/// Summary description for Office2003ButtonItemPainter.
/// </summary>
internal class Office2003ButtonItemPainter:ButtonItemPainter
{
protected virtual Color GetTextColor(ButtonItem button, ItemPaintArgs pa)
{
return ButtonItemPainterHelper.GetTextColor(button, pa);
}
public override void PaintButton(ButtonItem button, ItemPaintArgs pa)
{
bool isOnMenu=IsOnMenu(button, pa);
if(isOnMenu && button.Parent is ItemContainer)
isOnMenu=false;
bool bIsOnMenuBar=pa.IsOnMenuBar;
bool bThemed=button.IsThemed;
Graphics g = pa.Graphics;
Region oldClip = g.Clip.Clone() as Region;
try
{
g.SetClip(button.DisplayRectangle, CombineMode.Intersect);
if (!pa.IsOnMenu && !bIsOnMenuBar && bThemed)
{
if (pa.ContainerControl is ButtonX)
ThemedButtonXPainter.PaintButton(button, pa);
else
ThemedButtonItemPainter.PaintButton(button, pa);
return;
}
Rectangle itemRect = button.DisplayRectangle;
CompositeImage image = button.GetImage();
Rectangle imageRect = GetImageRectangle(button, pa, image);
PaintButtonBackground(button, pa, image);
Rectangle customizeCheckRect = GetCustomizeMenuCheckRectangle(button, pa);
Rectangle checkRect = GetCheckRectangle(button, pa, image);
Rectangle mouseOverRect = GetMouseOverRectangle(button, pa, image);
bool mouseOver = button.IsMouseOver;
if (button.Expanded && !isOnMenu)
mouseOver = false;
if (isOnMenu && button.Expanded && pa.ContainerControl != null && pa.ContainerControl.Parent != null)
{
if (!pa.ContainerControl.Parent.Bounds.Contains(System.Windows.Forms.Control.MousePosition))
mouseOver = true;
后面还有 729 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。