using System; using System.ComponentModel; using System.Drawing.Design; using System.Windows.Forms; namespace JinYuan.ControlLib.UCHelper { /// /// 缩放控件基类 /// [Description("缩放控件基类")] [ToolboxItem(true)] public abstract class DpiControl : Control, IDpiControl { #region 新增属性 private float scaleDpi = 1.0f; /// /// 控件当前缩放Dpi /// [Description("控件当前缩放Dpi")] [Browsable(false)] [Localizable(false)] [EditorBrowsable(EditorBrowsableState.Never)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public virtual float ScaleDpi { get { return this.scaleDpi; } set { if (value <= 0) return; this.scaleDpi = value; this.OnScaleDpiChangedInitialize(); } } #endregion public DpiControl() { } #region 重写 protected override void CreateHandle() { base.CreateHandle(); this.ScaleDpi = DpiHelper.GetControlDpi(this); } #endregion #region 要实现 /// /// 控件DPI更改后重新初始化控件Rectangle信息 /// protected abstract void OnScaleDpiChangedInitialize(); #endregion } }