diff --git a/Bin/net40/SunnyUI.dll b/Bin/net40/SunnyUI.dll index b7a21db2..4879fbef 100644 Binary files a/Bin/net40/SunnyUI.dll and b/Bin/net40/SunnyUI.dll differ diff --git a/SunnyUI/Controls/UIAvatar.cs b/SunnyUI/Controls/UIAvatar.cs index 7b390d63..e5eccdea 100644 --- a/SunnyUI/Controls/UIAvatar.cs +++ b/SunnyUI/Controls/UIAvatar.cs @@ -73,6 +73,7 @@ namespace Sunny.UI } private int avatarSize = 60; + private int baseAvatorSize = 60; [DefaultValue(60), Description("头像大小"), Category("SunnyUI")] public int AvatarSize @@ -80,6 +81,7 @@ namespace Sunny.UI get => avatarSize; set { + baseAvatorSize = value; avatarSize = value; Invalidate(); } @@ -177,6 +179,7 @@ namespace Sunny.UI } private int symbolSize = 45; + private int baseSymbolSize = 45; /// /// 图标大小 @@ -191,6 +194,7 @@ namespace Sunny.UI { symbolSize = Math.Max(value, 16); symbolSize = Math.Min(value, 128); + baseSymbolSize = symbolSize; Invalidate(); } } @@ -354,7 +358,9 @@ namespace Sunny.UI public void SetControlScale(float scale) { - throw new NotImplementedException(); + avatarSize = UIDPIScale.Calc(baseAvatorSize, scale); + symbolSize = UIDPIScale.Calc(baseSymbolSize, scale); + Invalidate(); } } } \ No newline at end of file diff --git a/SunnyUI/Style/UIDPIScale.cs b/SunnyUI/Style/UIDPIScale.cs index b72a9368..b0a485ed 100644 --- a/SunnyUI/Style/UIDPIScale.cs +++ b/SunnyUI/Style/UIDPIScale.cs @@ -106,7 +106,7 @@ namespace Sunny.UI return list; } - private static int Calc(int size, float scale) + internal static int Calc(int size, float scale) { return (int)(size * scale + 0.5); }