| File: System\Windows\Forms\ToolTip\DrawToolTipEventArgs.cs | Web Access |
| Project: src\winforms\src\System.Windows.Forms\System.Windows.Forms.csproj (System.Windows.Forms) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Drawing; namespace System.Windows.Forms; /// <summary> /// This class contains the information a user needs to paint the ToolTip. /// </summary> public class DrawToolTipEventArgs : EventArgs { private readonly Color _backColor; private readonly Color _foreColor; /// <summary> /// Creates a new DrawToolTipEventArgs with the given parameters. /// </summary> public DrawToolTipEventArgs( Graphics graphics, IWin32Window? associatedWindow, Control? associatedControl, Rectangle bounds, string? toolTipText, Color backColor, Color foreColor, Font? font) { Graphics = graphics.OrThrowIfNull(); AssociatedWindow = associatedWindow; AssociatedControl = associatedControl; Bounds = bounds; ToolTipText = toolTipText; _backColor = backColor; _foreColor = foreColor; Font = font; } /// <summary> /// Graphics object with which painting should be done. /// </summary> public Graphics Graphics { get; } /// <summary> /// The window for which the tooltip is being painted. /// </summary> public IWin32Window? AssociatedWindow { get; } /// <summary> /// The control for which the tooltip is being painted. /// </summary> public Control? AssociatedControl { get; } /// <summary> /// The rectangle outlining the area in which the painting should be done. /// </summary> public Rectangle Bounds { get; } /// <summary> /// The text that should be drawn. /// </summary> public string? ToolTipText { get; } /// <summary> /// The font used to draw tooltip text. /// </summary> public Font? Font { get; } /// <summary> /// Draws the background of the ToolTip. /// </summary> public void DrawBackground() { using var backBrush = _backColor.GetCachedSolidBrushScope(); Graphics.FillRectangle(backBrush, Bounds); } /// <summary> /// Draws the text (overloaded) /// </summary> public void DrawText() { // Pass in a set of flags to mimic default behavior DrawText(TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter | TextFormatFlags.SingleLine | TextFormatFlags.HidePrefix); } /// <summary> /// Draws the text (overloaded) - takes a TextFormatFlags argument. /// </summary> public void DrawText(TextFormatFlags flags) { TextRenderer.DrawText(Graphics, ToolTipText, Font, Bounds, _foreColor, flags); } /// <summary> /// Draws a border for the ToolTip similar to the default border. /// </summary> public void DrawBorder() { ControlPaint.DrawBorder(Graphics, Bounds, SystemColors.WindowFrame, ButtonBorderStyle.Solid); } }