| File: System\Windows\Forms\Design\Behavior\MiniLockedBorderGlyph.cs | Web Access |
| Project: src\winforms\src\System.Windows.Forms.Design\src\System.Windows.Forms.Design.csproj (System.Windows.Forms.Design) |
// 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.Design.Behavior; /// <summary> /// The LockedBorderGlyph draws one side (depending on type) of a SelectionBorder in the 'Locked' mode. /// The constructor will initialize and cache the pen and brush objects to avoid unnecessary recreations. /// </summary> internal class MiniLockedBorderGlyph : SelectionGlyphBase { private SelectionBorderGlyphType _type; internal SelectionBorderGlyphType Type { get => _type; set => _type = value; } /// <summary> /// This constructor extends from the standard SelectionGlyphBase constructor. /// Note that a primarySelection flag is passed in - this will be used when determining the colors of the borders. /// </summary> internal MiniLockedBorderGlyph(Rectangle controlBounds, SelectionBorderGlyphType type, Behavior behavior) : base(behavior) { InitializeGlyph(controlBounds, type); } /// <summary> /// Helper function that initializes the Glyph based on bounds, type, primary sel, and bordersize. /// </summary> private void InitializeGlyph(Rectangle controlBounds, SelectionBorderGlyphType type) { hitTestCursor = Cursors.Default; // always default cursor for locked rules = SelectionRules.None; // never change sel rules for locked int borderSize = 1; Type = type; // this will return the rect representing the bounds of the glyph bounds = DesignerUtils.GetBoundsForSelectionType(controlBounds, type, borderSize); hitBounds = bounds; } /// <summary> /// Simple painting logic for locked Glyphs. /// </summary> public override void Paint(PaintEventArgs pe) { pe.Graphics.FillRectangle(new SolidBrush(SystemColors.ControlText), bounds); } }