diff --git a/SunnyUI/Controls/UIDataGridView.cs b/SunnyUI/Controls/UIDataGridView.cs index 19a441ac..2214d52b 100644 --- a/SunnyUI/Controls/UIDataGridView.cs +++ b/SunnyUI/Controls/UIDataGridView.cs @@ -46,6 +46,7 @@ * 2022-10-14: V3.2.6 增加了可设置垂直滚动条宽度的属性 * 2023-06-28: V3.3.9 增加了可设置水平滚动条宽度的属性,但可能会遮挡最下面数据行的数据,看情况使用 * 2023-07-12: V3.4.0 修复了有冻结行时垂直滚动条点击时出错的问题 + * 2023-11-05: V3.5.2 重构主题 ******************************************************************************/ using System; @@ -704,7 +705,7 @@ namespace Sunny.UI StripeEvenColor = uiColor.GridStripeEvenColor; StripeOddColor = uiColor.GridStripeOddColor; - if (HBar != null) + if (HBar != null && HBar.Style == UIStyle.Inherited) { HBar.ForeColor = uiColor.GridBarForeColor; HBar.HoverColor = uiColor.ButtonFillHoverColor; @@ -715,7 +716,7 @@ namespace Sunny.UI scrollBarBackColor = uiColor.GridBarFillColor; } - if (VBar != null) + if (VBar != null && VBar.Style == UIStyle.Inherited) { VBar.ForeColor = uiColor.GridBarForeColor; VBar.HoverColor = uiColor.ButtonFillHoverColor; @@ -957,12 +958,18 @@ namespace Sunny.UI scrollBarColor = value; HBar.HoverColor = HBar.PressColor = HBar.ForeColor = value; VBar.HoverColor = VBar.PressColor = VBar.ForeColor = value; + HBar.Style = VBar.Style = UIStyle.Custom; Invalidate(); } } private Color scrollBarRectColor = Color.FromArgb(80, 160, 255); + /// + /// 填充颜色,当值为背景色或透明色或空值则不填充 + /// + [Description("滚动条边框颜色"), Category("SunnyUI")] + [DefaultValue(typeof(Color), "80, 160, 255")] public Color ScrollBarRectColor { get => scrollBarRectColor; @@ -970,6 +977,7 @@ namespace Sunny.UI { scrollBarRectColor = value; VBar.RectColor = value; + HBar.Style = VBar.Style = UIStyle.Custom; Invalidate(); } } @@ -989,9 +997,34 @@ namespace Sunny.UI scrollBarBackColor = value; HBar.FillColor = value; VBar.FillColor = value; + HBar.Style = VBar.Style = UIStyle.Custom; Invalidate(); } } + + /// + /// 滚动条主题样式 + /// + [DefaultValue(true), Description("滚动条主题样式"), Category("SunnyUI")] + public bool ScrollBarStyleInherited + { + get => HBar != null && HBar.Style == UIStyle.Inherited; + set + { + if (value) + { + if (HBar != null) HBar.Style = UIStyle.Inherited; + if (VBar != null) VBar.Style = UIStyle.Inherited; + + scrollBarColor = UIStyles.Blue.GridBarForeColor; + scrollBarBackColor = UIStyles.Blue.GridBarFillColor; + scrollBarRectColor = VBar.RectColor = UIStyles.Blue.RectColor; + scrollBarColor = UIStyles.Blue.GridBarForeColor; + scrollBarBackColor = UIStyles.Blue.GridBarFillColor; + } + + } + } } public static class UIDataGridViewHelper