Files
1258/JinYuan.ControlLib/UCHelper/DpiControl.cs
T

66 lines
1.5 KiB
C#
Raw Normal View History

2026-08-04 18:36:40 +08:00
using System.ComponentModel;
using System.Drawing.Design;
using System.Windows.Forms;
namespace JinYuan.ControlLib.UCHelper
{
/// <summary>
/// 缩放控件基类
/// </summary>
[Description("缩放控件基类")]
[ToolboxItem(true)]
public abstract class DpiControl : Control, IDpiControl
{
#region 新增属性
private float scaleDpi = 1.0f;
/// <summary>
/// 控件当前缩放Dpi
/// </summary>
[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 要实现
/// <summary>
/// 控件DPI更改后重新初始化控件Rectangle信息
/// </summary>
protected abstract void OnScaleDpiChangedInitialize();
#endregion
}
}