| File: System\Windows\Forms\Design\Behavior\Adorner.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> /// An Adorner manages a collection of UI-related Glyphs. Each Adorner /// can be enabled/disabled. Only Enabled Adorners will receive hit test /// and paint messages from the BehaviorService. An Adorner can be viewed /// as a proxy between UI-related elements (all Glyphs) and the BehaviorService. /// </summary> public sealed class Adorner { private BehaviorService? _behaviorService; // ptr back to the BehaviorService private readonly GlyphCollection _glyphs; // collection of Glyphs that this particular Adorner manages /// <summary> /// Standard constructor. Creates a new GlyphCollection and by default is enabled. /// </summary> public Adorner() { _glyphs = []; EnabledInternal = true; } /// <summary> /// When an Adorner is added to the BehaviorService's AdornerCollection, the collection /// will set this property so that the Adorner can call back to the BehaviorService. /// </summary> public BehaviorService? BehaviorService { get => _behaviorService; set => _behaviorService = value; } /// <summary> /// Determines if the BehaviorService will send HitTest and Paint messages to /// the Adorner. This will invalidate behavior service when changed. /// </summary> public bool Enabled { get => EnabledInternal; set { if (value != EnabledInternal) { EnabledInternal = value; Invalidate(); } } } internal bool EnabledInternal { get; set; } /// <summary> /// Returns the stronly-typed Glyph collection. /// </summary> public GlyphCollection Glyphs { get => _glyphs; } /// <summary> /// Forces the BehaviorService to refresh its AdornerWindow. /// </summary> public void Invalidate() { _behaviorService?.Invalidate(); } /// <summary> /// Forces the BehaviorService to refresh its AdornerWindow within the given Rectangle. /// </summary> public void Invalidate(Rectangle rectangle) { _behaviorService?.Invalidate(rectangle); } /// <summary> /// Forces the BehaviorService to refresh its AdornerWindow within the given Region. /// </summary> public void Invalidate(Region region) { _behaviorService?.Invalidate(region); } }