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
}
}