diff --git a/Bin/net40/SunnyUI.dll b/Bin/net40/SunnyUI.dll index 4879fbef..ffc8c171 100644 Binary files a/Bin/net40/SunnyUI.dll and b/Bin/net40/SunnyUI.dll differ diff --git a/SunnyUI/Controls/Color/UIColorWheel.cs b/SunnyUI/Controls/Color/UIColorWheel.cs index 17742b84..95a5bab0 100644 --- a/SunnyUI/Controls/Color/UIColorWheel.cs +++ b/SunnyUI/Controls/Color/UIColorWheel.cs @@ -36,7 +36,7 @@ namespace Sunny.UI [DefaultValue(false), Category("SunnyUI"), Description("ֹؼ洰")] public bool ForbidControlScale { get; set; } - [Browsable(false), DefaultValue(typeof(Size), "0, 0")] + [Browsable(false)] public ControlScaleInfo DesignedRect { get; private set; } [Browsable(false)] diff --git a/SunnyUI/Controls/Color/UILabelRotate.cs b/SunnyUI/Controls/Color/UILabelRotate.cs index 12abba8d..9cdfab33 100644 --- a/SunnyUI/Controls/Color/UILabelRotate.cs +++ b/SunnyUI/Controls/Color/UILabelRotate.cs @@ -11,7 +11,7 @@ namespace Sunny.UI private ContentAlignment m_rotatePointAlignment = ContentAlignment.MiddleCenter; private ContentAlignment m_textAlignment = ContentAlignment.MiddleLeft; - [Browsable(false), DefaultValue(typeof(Size), "0, 0")] + [Browsable(false)] public ControlScaleInfo DesignedRect { get; private set; } [DefaultValue(false), Category("SunnyUI"), Description("ֹؼ洰")] diff --git a/SunnyUI/Controls/UIContextMenuStrip.cs b/SunnyUI/Controls/UIContextMenuStrip.cs index 5d9b417c..8c86d7fc 100644 --- a/SunnyUI/Controls/UIContextMenuStrip.cs +++ b/SunnyUI/Controls/UIContextMenuStrip.cs @@ -45,7 +45,7 @@ namespace Sunny.UI [DefaultValue(false), Category("SunnyUI"), Description("禁止控件跟随窗体缩放")] public bool ForbidControlScale { get; set; } - [Browsable(false), DefaultValue(typeof(Size), "0, 0")] + [Browsable(false)] public ControlScaleInfo DesignedRect { get; private set; } [Browsable(false), DefaultValue(false)] diff --git a/SunnyUI/Controls/UIControl.cs b/SunnyUI/Controls/UIControl.cs index 68648699..43a4c68f 100644 --- a/SunnyUI/Controls/UIControl.cs +++ b/SunnyUI/Controls/UIControl.cs @@ -49,7 +49,7 @@ namespace Sunny.UI base.MinimumSize = new Size(1, 1); } - [Browsable(false), DefaultValue(typeof(Size), "0, 0")] + [Browsable(false)] public ControlScaleInfo DesignedRect { get; private set; } protected override void OnVisibleChanged(EventArgs e) diff --git a/SunnyUI/Controls/UIDataGridView.cs b/SunnyUI/Controls/UIDataGridView.cs index 8a4d31d9..abbbae44 100644 --- a/SunnyUI/Controls/UIDataGridView.cs +++ b/SunnyUI/Controls/UIDataGridView.cs @@ -103,7 +103,7 @@ namespace Sunny.UI [DefaultValue(false), Category("SunnyUI"), Description("禁止控件跟随窗体缩放")] public bool ForbidControlScale { get; set; } - [Browsable(false), DefaultValue(typeof(Size), "0, 0")] + [Browsable(false)] public ControlScaleInfo DesignedRect { get; private set; } protected override void OnVisibleChanged(EventArgs e) diff --git a/SunnyUI/Controls/UIImageButton.cs b/SunnyUI/Controls/UIImageButton.cs index a02f2def..c601bd11 100644 --- a/SunnyUI/Controls/UIImageButton.cs +++ b/SunnyUI/Controls/UIImageButton.cs @@ -44,7 +44,7 @@ namespace Sunny.UI private ContentAlignment textAlign = ContentAlignment.MiddleCenter; private Color foreColor = UIFontColor.Primary; - [Browsable(false), DefaultValue(typeof(Size), "0, 0")] + [Browsable(false)] public ControlScaleInfo DesignedRect { get; private set; } [DefaultValue(false), Category("SunnyUI"), Description("禁止控件跟随窗体缩放")] diff --git a/SunnyUI/Controls/UIImageListBox.cs b/SunnyUI/Controls/UIImageListBox.cs index 5bf6328d..cce9e830 100644 --- a/SunnyUI/Controls/UIImageListBox.cs +++ b/SunnyUI/Controls/UIImageListBox.cs @@ -345,7 +345,7 @@ namespace Sunny.UI [DefaultValue(false), Category("SunnyUI"), Description("禁止控件跟随窗体缩放")] public bool ForbidControlScale { get; set; } - [Browsable(false), DefaultValue(typeof(Size), "0, 0")] + [Browsable(false)] public ControlScaleInfo DesignedRect { get; private set; } /// diff --git a/SunnyUI/Controls/UILabel.cs b/SunnyUI/Controls/UILabel.cs index efdf8c3c..78b9409f 100644 --- a/SunnyUI/Controls/UILabel.cs +++ b/SunnyUI/Controls/UILabel.cs @@ -46,7 +46,7 @@ namespace Sunny.UI [DefaultValue(false), Category("SunnyUI"), Description("禁止控件跟随窗体缩放")] public bool ForbidControlScale { get; set; } - [Browsable(false), DefaultValue(typeof(Size), "0, 0")] + [Browsable(false)] public ControlScaleInfo DesignedRect { get; private set; } protected override void OnVisibleChanged(EventArgs e) @@ -191,7 +191,7 @@ namespace Sunny.UI [DefaultValue(false), Category("SunnyUI"), Description("禁止控件跟随窗体缩放")] public bool ForbidControlScale { get; set; } - [Browsable(false), DefaultValue(typeof(Size), "0, 0")] + [Browsable(false)] public ControlScaleInfo DesignedRect { get; private set; } protected override void OnVisibleChanged(EventArgs e) diff --git a/SunnyUI/Controls/UIListBox.cs b/SunnyUI/Controls/UIListBox.cs index bbe2e2ab..2ec8f861 100644 --- a/SunnyUI/Controls/UIListBox.cs +++ b/SunnyUI/Controls/UIListBox.cs @@ -609,7 +609,7 @@ namespace Sunny.UI { private UIScrollBar bar; - [Browsable(false), DefaultValue(typeof(Size), "0, 0")] + [Browsable(false)] public ControlScaleInfo DesignedRect { get; private set; } [DefaultValue(false), Category("SunnyUI"), Description("禁止控件跟随窗体缩放")] diff --git a/SunnyUI/Controls/UINavBar.cs b/SunnyUI/Controls/UINavBar.cs index 56dcce38..79d89087 100644 --- a/SunnyUI/Controls/UINavBar.cs +++ b/SunnyUI/Controls/UINavBar.cs @@ -67,7 +67,7 @@ namespace Sunny.UI [DefaultValue(false), Category("SunnyUI"), Description("禁止控件跟随窗体缩放")] public bool ForbidControlScale { get; set; } - [Browsable(false), DefaultValue(typeof(Size), "0, 0")] + [Browsable(false)] public ControlScaleInfo DesignedRect { get; private set; } protected override void OnVisibleChanged(EventArgs e) diff --git a/SunnyUI/Controls/UINavMenu.cs b/SunnyUI/Controls/UINavMenu.cs index 10e1ca60..d7e1f2e5 100644 --- a/SunnyUI/Controls/UINavMenu.cs +++ b/SunnyUI/Controls/UINavMenu.cs @@ -90,7 +90,7 @@ namespace Sunny.UI selectedHighColor = UIStyles.Blue.NavMenuMenuSelectedColor; } - [Browsable(false), DefaultValue(typeof(Size), "0, 0")] + [Browsable(false)] public ControlScaleInfo DesignedRect { get; private set; } protected override void OnVisibleChanged(EventArgs e) diff --git a/SunnyUI/Controls/UISmoothLabel.cs b/SunnyUI/Controls/UISmoothLabel.cs index f0e65852..b30266a6 100644 --- a/SunnyUI/Controls/UISmoothLabel.cs +++ b/SunnyUI/Controls/UISmoothLabel.cs @@ -63,7 +63,7 @@ namespace Sunny.UI base.Dispose(disposing); } - [Browsable(false), DefaultValue(typeof(Size), "0, 0")] + [Browsable(false)] public ControlScaleInfo DesignedRect { get; private set; } protected override void OnVisibleChanged(EventArgs e) diff --git a/SunnyUI/Controls/UISplitContainer.cs b/SunnyUI/Controls/UISplitContainer.cs index d9dfb578..1df07897 100644 --- a/SunnyUI/Controls/UISplitContainer.cs +++ b/SunnyUI/Controls/UISplitContainer.cs @@ -82,7 +82,7 @@ namespace Sunny.UI Version = UIGlobal.Version; } - [Browsable(false), DefaultValue(typeof(Size), "0, 0")] + [Browsable(false)] public ControlScaleInfo DesignedRect { get; private set; } protected override void OnVisibleChanged(EventArgs e) diff --git a/SunnyUI/Controls/UITabControl.cs b/SunnyUI/Controls/UITabControl.cs index 16db46c0..8ee8f8c0 100644 --- a/SunnyUI/Controls/UITabControl.cs +++ b/SunnyUI/Controls/UITabControl.cs @@ -75,7 +75,7 @@ namespace Sunny.UI [DefaultValue(false), Category("SunnyUI"), Description("禁止控件跟随窗体缩放")] public bool ForbidControlScale { get; set; } - [Browsable(false), DefaultValue(typeof(Size), "0, 0")] + [Browsable(false)] public ControlScaleInfo DesignedRect { get; private set; } protected override void OnVisibleChanged(EventArgs e) diff --git a/SunnyUI/Controls/UITabControlMenu.cs b/SunnyUI/Controls/UITabControlMenu.cs index 6f2cc987..70767b87 100644 --- a/SunnyUI/Controls/UITabControlMenu.cs +++ b/SunnyUI/Controls/UITabControlMenu.cs @@ -50,7 +50,7 @@ namespace Sunny.UI _fillColor = UIStyles.Blue.TabControlBackColor; } - [Browsable(false), DefaultValue(typeof(Size), "0, 0")] + [Browsable(false)] public ControlScaleInfo DesignedRect { get; private set; } [DefaultValue(false), Category("SunnyUI"), Description("禁止控件跟随窗体缩放")] diff --git a/SunnyUI/Controls/UITableLayoutPanel.cs b/SunnyUI/Controls/UITableLayoutPanel.cs index 0cf006f8..f9b4b219 100644 --- a/SunnyUI/Controls/UITableLayoutPanel.cs +++ b/SunnyUI/Controls/UITableLayoutPanel.cs @@ -33,7 +33,7 @@ namespace Sunny.UI Version = UIGlobal.Version; } - [Browsable(false), DefaultValue(typeof(Size), "0, 0")] + [Browsable(false)] public ControlScaleInfo DesignedRect { get; private set; } [Browsable(false)] diff --git a/SunnyUI/Controls/UIUserControl.cs b/SunnyUI/Controls/UIUserControl.cs index 10694de1..f340c961 100644 --- a/SunnyUI/Controls/UIUserControl.cs +++ b/SunnyUI/Controls/UIUserControl.cs @@ -345,7 +345,7 @@ namespace Sunny.UI } } - [Browsable(false), DefaultValue(typeof(Size), "0, 0")] + [Browsable(false)] public ControlScaleInfo DesignedRect { get; private set; } protected override void OnVisibleChanged(EventArgs e) diff --git a/SunnyUI/Forms/UIForm.cs b/SunnyUI/Forms/UIForm.cs index bcb9d1f1..d946cafa 100644 --- a/SunnyUI/Forms/UIForm.cs +++ b/SunnyUI/Forms/UIForm.cs @@ -115,8 +115,30 @@ namespace Sunny.UI } } + private void SetDesignedSize() + { + if (DesignedRect.Width == 0 && DesignedRect.Height == 0) + { + DesignedRect = new ControlScaleInfo(DesignedSize.Width, DesignedSize.Height, 0, 0); + } + + if (DesignedRect.Width == 0 && DesignedRect.Height == 0) + { + DesignedRect = new ControlScaleInfo(this); + } + + DesignSizeChanged?.Invoke(this, DesignedRect); + } + [DefaultValue(typeof(Size), "0, 0")] [Description("设计界面大小"), Category("SunnyUI")] + public Size DesignedSize + { + get; + set; + } + + [Browsable(false)] public ControlScaleInfo DesignedRect { get; private set; } private void SetControlScale() @@ -134,8 +156,12 @@ namespace Sunny.UI UIDPIScale.SetControlScale(control, scale); } } + + ControlScaleChanged?.Invoke(this, scale); } + public event OnControlScaleChanged ControlScaleChanged; + public void ResetDPIScale() { IsScaled = false; @@ -1329,13 +1355,7 @@ namespace Sunny.UI SetDesignedSize(); } - protected virtual void SetDesignedSize() - { - if (DesignedRect.Width == 0 && DesignedRect.Height == 0) - { - DesignedRect = new ControlScaleInfo(this); ; - } - } + public event OnDesignSizeChanged DesignSizeChanged; /// /// 是否显示圆角 diff --git a/SunnyUI/Forms/UIFormHelper.cs b/SunnyUI/Forms/UIFormHelper.cs index ea2fa3c5..572f36ec 100644 --- a/SunnyUI/Forms/UIFormHelper.cs +++ b/SunnyUI/Forms/UIFormHelper.cs @@ -30,6 +30,10 @@ using System.Windows.Forms; namespace Sunny.UI { + public delegate void OnControlScaleChanged(object sender, float scale); + + public delegate void OnDesignSizeChanged(object sender, ControlScaleInfo info); + public static class UIMessageDialog { /// diff --git a/SunnyUI/Frames/UIPage.cs b/SunnyUI/Frames/UIPage.cs index e8fb642c..a1e0f0c5 100644 --- a/SunnyUI/Frames/UIPage.cs +++ b/SunnyUI/Frames/UIPage.cs @@ -79,7 +79,7 @@ namespace Sunny.UI [DefaultValue(false), Category("SunnyUI"), Description("禁止控件跟随窗体缩放")] public bool ForbidControlScale { get; set; } - [Browsable(false), DefaultValue(typeof(Size), "0, 0")] + [Browsable(false)] public ControlScaleInfo DesignedRect { get; private set; } protected override void OnVisibleChanged(EventArgs e) diff --git a/SunnyUI/Style/UIStyle.cs b/SunnyUI/Style/UIStyle.cs index 7935ed24..6891ad66 100644 --- a/SunnyUI/Style/UIStyle.cs +++ b/SunnyUI/Style/UIStyle.cs @@ -77,6 +77,14 @@ namespace Sunny.UI public int Width { get; } public int Height { get; } + public ControlScaleInfo(int width, int height, int xInterval, int yInterval) + { + Width = width; + Height = height; + XInterval = xInterval; + YInterval = yInterval; + } + public ControlScaleInfo(Control control) { Width = control.Width; diff --git a/SunnyUI/Style/UIStyleManager.cs b/SunnyUI/Style/UIStyleManager.cs index b6e1037c..9973f559 100644 --- a/SunnyUI/Style/UIStyleManager.cs +++ b/SunnyUI/Style/UIStyleManager.cs @@ -85,12 +85,6 @@ namespace Sunny.UI set => UIStyles.FontSize = value; } - public bool ControlScale - { - get => UIStyles.ControlScale; - set => UIStyles.ControlScale = value; - } - /// /// 版本 ///