WinFormsPopupAlerts/SystemTooltipAlertRenderer.cs

(开头部分) 6KB

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

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms.VisualStyles;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
using System.Drawing;

namespace WinFormsPopupAlerts
{
    [System.ComponentModel.ToolboxItem(false)]
    public class SystemTooltipAlertRenderer : TooltipAlertRenderer
    {
        private static bool IsDefined(VisualStyleElement element)
        {
            return Application.RenderWithVisualStyles && SafeNativeMethods.IsThemePartDefined(element.ClassName, element.Part, element.State);
        }

        public static VisualStyleElement GetCloseButtonVS(TooltipCloseButtonState buttonState)
        {
            VisualStyleElement btn;
            switch (buttonState)
            {
                case TooltipCloseButtonState.Hot:
                    btn = VisualStyleElement.ToolTip.Close.Hot;
                    break;
                case TooltipCloseButtonState.Pressed:
                    btn = VisualStyleElement.ToolTip.Close.Pressed;
                    break;
                case TooltipCloseButtonState.Normal:
                default:
                    btn = VisualStyleElement.ToolTip.Close.Normal;
                    break;
            }
            return btn;
        }

        public override void DrawCloseButton(Graphics dc, Rectangle rect, TooltipCloseButtonState buttonState)
        {            
            VisualStyleElement btn = GetCloseButtonVS(buttonState);
            Rectangle btnRect = GetCloseButtonRect(dc, rect, buttonState);
            if (IsDefined(btn))
            {
                VisualStyleRenderer renderer = new VisualStyleRenderer(btn);
                renderer.DrawBackground(dc, btnRect);
            }
            else
                base.DrawCloseButton(dc, rect, buttonState);
        }

        protected override void Draw(Graphics dc, string title, string text, Rectangle rect, Rectangle titleRect, Rectangle bodyRect, Image img, int iconWidth)
        {
            if (IsDefined(VisualStyleElement.ToolTip.BalloonTitle.Normal) && IsDefined(VisualStyleElement.ToolTip.Balloon.Normal))
            {
                VisualStyleRenderer titleRenderer = new VisualStyleRenderer(VisualStyleElement.ToolTip.BalloonTitle.Normal);
                VisualStyleRenderer balloonRenderer = new VisualStyleRenderer(VisualStyleElement.ToolTip.Balloon.Normal);
                balloonRenderer.DrawBackground(dc, rect);
                // drawing title
                titleRenderer.DrawText(dc,
                    new Rectangle(Padding.Left + iconWidth, Padding.Top, rect.Width - iconWidth - (Padding.Left + Padding.Right), titleRect.Height),
后面还有 79 行代码,解锁后查看完整代码

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

AI 解读 AI

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

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