Source/ButtonX/ThemedButtonXPainter.cs
(开头部分) 8KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Drawing;
namespace DevComponents.DotNetBar
{
/// <summary>
/// Summary description for ThemedButtonItemPainter.
/// </summary>
internal class ThemedButtonXPainter
{
public static void PaintButton(ButtonItem button, ItemPaintArgs pa)
{
System.Drawing.Graphics g = pa.Graphics;
ThemeButton theme = pa.ThemeButton;
ThemeButtonParts part = ThemeButtonParts.PushButton;
ThemeButtonStates state = ThemeButtonStates.PushButtonNormal;
Color textColor = ButtonItemPainterHelper.GetTextColor(button, pa);
Rectangle rectImage = Rectangle.Empty;
Rectangle itemRect = button.DisplayRectangle;
Font font = null;
CompositeImage image = button.GetImage();
eTextFormat format = GetStringFormat(button, pa, image);
font = button.GetFont(pa, false);
bool bSplitButton = (button.SubItems.Count > 0 || button.PopupType == ePopupType.Container) && button.ShowSubItems && !button.SubItemsRect.IsEmpty;
// Calculate image position
if (image != null)
{
if (button.ImagePosition == eImagePosition.Top || button.ImagePosition == eImagePosition.Bottom)
rectImage = new Rectangle(button.ImageDrawRect.X, button.ImageDrawRect.Y, itemRect.Width, button.ImageDrawRect.Height);
else
rectImage = new Rectangle(button.ImageDrawRect.X, button.ImageDrawRect.Y, button.ImageDrawRect.Width, button.ImageDrawRect.Height);
rectImage.Offset(itemRect.Left, itemRect.Top);
rectImage.Offset((rectImage.Width - button.ImageSize.Width) / 2, (rectImage.Height - button.ImageSize.Height) / 2);
rectImage.Width = button.ImageSize.Width;
rectImage.Height = button.ImageSize.Height;
}
// Set the state and text brush
if (!ButtonItemPainter.IsItemEnabled(button, pa))
{
state = ThemeButtonStates.PushButtonDisabled;
}
else if (button.IsMouseDown || button.Expanded)
{
state = ThemeButtonStates.PushButtonPressed;
}
else if (button.IsMouseOver && button.Checked)
{
state = ThemeButtonStates.PushButtonPressed;
}
else if (button.IsMouseOver)
{
state = ThemeButtonStates.PushButtonHot;
后面还有 129 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。