diff --git a/SunnyUI/Controls/UIDoubleUpDown.cs b/SunnyUI/Controls/UIDoubleUpDown.cs index 08c450a3..39a95b8e 100644 --- a/SunnyUI/Controls/UIDoubleUpDown.cs +++ b/SunnyUI/Controls/UIDoubleUpDown.cs @@ -29,6 +29,7 @@ * 2022-11-12: V3.2.8 删除MaximumEnabled、MinimumEnabled、HasMaximum、HasMinimum属性 * 2023-01-28: V3.3.1 修改文本框数据输入数据变更事件为MouseLeave * 2023-03-24: V3.3.3 删除ForbidInput属性,使用Inputable属性 + * 2023-12-28: V3.6.2 修复设置Style时按钮颜色不一致 ******************************************************************************/ using System; @@ -57,6 +58,9 @@ namespace Sunny.UI edit.BorderStyle = BorderStyle.None; edit.MouseLeave += Edit_Leave; pnlValue.Paint += PnlValue_Paint; + + btnAdd.Style = UIStyle.Custom; + btnDec.Style = UIStyle.Custom; } /// @@ -246,12 +250,70 @@ namespace Sunny.UI if (Height > UIGlobal.EditorMaxHeight) Height = UIGlobal.EditorMaxHeight; } - protected override void AfterSetRectColor(Color color) + public override void SetStyleColor(UIBaseStyle uiColor) { - base.AfterSetRectColor(color); - if (btnAdd == null || btnDec == null) return; - btnAdd.FillColor = btnDec.FillColor = color; - btnAdd.RectColor = btnDec.RectColor = color; + base.SetStyleColor(uiColor); + btnAdd.SetStyleColor(uiColor); + btnDec.SetStyleColor(uiColor); + pnlValue.SetStyleColor(uiColor); + btnAdd.Invalidate(); + btnDec.Invalidate(); + pnlValue.Invalidate(); + } + + /// + /// 填充颜色,当值为背景色或透明色或空值则不填充 + /// + [Description("填充颜色"), Category("SunnyUI")] + [DefaultValue(typeof(Color), "80, 160, 255")] + public Color ButtonFillColor + { + get => btnAdd.FillColor; + set => btnDec.FillColor = btnAdd.FillColor = value; + } + + /// + /// 鼠标移上时填充颜色 + /// + [DefaultValue(typeof(Color), "115, 179, 255"), Category("SunnyUI")] + [Description("鼠标移上时填充颜色")] + public Color ButtonFillHoverColor + { + get => btnAdd.FillHoverColor; + set => btnDec.RectHoverColor = btnAdd.RectHoverColor = btnDec.FillHoverColor = btnAdd.FillHoverColor = value; + } + + /// + /// 鼠标按下时填充颜色 + /// + [DefaultValue(typeof(Color), "64, 128, 204"), Category("SunnyUI")] + [Description("鼠标按下时填充颜色")] + public Color ButtonFillPressColor + { + get => btnAdd.FillPressColor; + set => btnDec.RectPressColor = btnAdd.RectPressColor = btnDec.FillPressColor = btnAdd.FillPressColor = value; + } + + /// + /// 字体图标颜色 + /// + [Description("图标颜色"), Category("SunnyUI")] + [DefaultValue(typeof(Color), "White")] + public Color ButtonSymbolColor + { + get => btnAdd.SymbolColor; + set => btnDec.SymbolColor = btnAdd.SymbolColor = value; + } + + /// + /// 边框颜色 + /// + [Description("边框颜色"), Category("SunnyUI")] + [DefaultValue(typeof(Color), "80, 160, 255")] + public Color ButtonRectColor + { + get => btnAdd.RectColor; + set => pnlValue.RectColor = btnDec.RectColor = btnAdd.RectColor = value; } protected override void AfterSetFillColor(Color color) diff --git a/SunnyUI/Controls/UIIntegerUpDown.cs b/SunnyUI/Controls/UIIntegerUpDown.cs index 348542e1..560c10b7 100644 --- a/SunnyUI/Controls/UIIntegerUpDown.cs +++ b/SunnyUI/Controls/UIIntegerUpDown.cs @@ -28,6 +28,7 @@ * 2022-11-12: V3.2.8 删除MaximumEnabled、MinimumEnabled、HasMaximum、HasMinimum属性 * 2023-01-28: V3.3.1 修改文本框数据输入数据变更事件为MouseLeave * 2023-03-24: V3.3.3 删除ForbidInput属性,使用Inputable属性 + * 2023-12-28: V3.6.2 修复设置Style时按钮颜色不一致 ******************************************************************************/ using System; @@ -54,6 +55,9 @@ namespace Sunny.UI edit.BorderStyle = BorderStyle.None; edit.MouseLeave += Edit_Leave; pnlValue.Paint += PnlValue_Paint; + + btnAdd.Style = UIStyle.Custom; + btnDec.Style = UIStyle.Custom; } /// @@ -228,12 +232,70 @@ namespace Sunny.UI if (Height > UIGlobal.EditorMaxHeight) Height = UIGlobal.EditorMaxHeight; } - protected override void AfterSetRectColor(Color color) + public override void SetStyleColor(UIBaseStyle uiColor) { - base.AfterSetRectColor(color); - if (btnAdd == null || btnDec == null) return; - btnAdd.FillColor = btnDec.FillColor = color; - btnAdd.RectColor = btnDec.RectColor = color; + base.SetStyleColor(uiColor); + btnAdd.SetStyleColor(uiColor); + btnDec.SetStyleColor(uiColor); + pnlValue.SetStyleColor(uiColor); + btnAdd.Invalidate(); + btnDec.Invalidate(); + pnlValue.Invalidate(); + } + + /// + /// 填充颜色,当值为背景色或透明色或空值则不填充 + /// + [Description("填充颜色"), Category("SunnyUI")] + [DefaultValue(typeof(Color), "80, 160, 255")] + public Color ButtonFillColor + { + get => btnAdd.FillColor; + set => btnDec.FillColor = btnAdd.FillColor = value; + } + + /// + /// 鼠标移上时填充颜色 + /// + [DefaultValue(typeof(Color), "115, 179, 255"), Category("SunnyUI")] + [Description("鼠标移上时填充颜色")] + public Color ButtonFillHoverColor + { + get => btnAdd.FillHoverColor; + set => btnDec.RectHoverColor = btnAdd.RectHoverColor = btnDec.FillHoverColor = btnAdd.FillHoverColor = value; + } + + /// + /// 鼠标按下时填充颜色 + /// + [DefaultValue(typeof(Color), "64, 128, 204"), Category("SunnyUI")] + [Description("鼠标按下时填充颜色")] + public Color ButtonFillPressColor + { + get => btnAdd.FillPressColor; + set => btnDec.RectPressColor = btnAdd.RectPressColor = btnDec.FillPressColor = btnAdd.FillPressColor = value; + } + + /// + /// 字体图标颜色 + /// + [Description("图标颜色"), Category("SunnyUI")] + [DefaultValue(typeof(Color), "White")] + public Color ButtonSymbolColor + { + get => btnAdd.SymbolColor; + set => btnDec.SymbolColor = btnAdd.SymbolColor = value; + } + + /// + /// 边框颜色 + /// + [Description("边框颜色"), Category("SunnyUI")] + [DefaultValue(typeof(Color), "80, 160, 255")] + public Color ButtonRectColor + { + get => btnAdd.RectColor; + set => pnlValue.RectColor = btnDec.RectColor = btnAdd.RectColor = value; } protected override void AfterSetFillColor(Color color)