diff --git a/Bin/net40/SunnyUI.dll b/Bin/net40/SunnyUI.dll index 55034133..1f813a5a 100644 Binary files a/Bin/net40/SunnyUI.dll and b/Bin/net40/SunnyUI.dll differ diff --git a/SunnyUI.Demo/Bin/SunnyUI.Demo.exe b/SunnyUI.Demo/Bin/SunnyUI.Demo.exe index 79311e88..eb5a752d 100644 Binary files a/SunnyUI.Demo/Bin/SunnyUI.Demo.exe and b/SunnyUI.Demo/Bin/SunnyUI.Demo.exe differ diff --git a/SunnyUI/Charts/UIChart.cs b/SunnyUI/Charts/UIChart.cs index 9386fed0..1e951115 100644 --- a/SunnyUI/Charts/UIChart.cs +++ b/SunnyUI/Charts/UIChart.cs @@ -65,7 +65,7 @@ namespace Sunny.UI { tip.IsScaled = true; float size = SubFont != null ? SubFont.Size : UIFontColor.SubFontSize; - tip.Font = this.DPIScaleFont(Font, size); + tip.Font = this.Font.DPIScaleFont(size); } protected override void Dispose(bool disposing) @@ -201,7 +201,7 @@ namespace Sunny.UI if (tmpFont == null || !tmpFont.Size.EqualsFloat(size / UIDPIScale.DPIScale())) { tmpFont?.Dispose(); - tmpFont = this.DPIScaleFont(Font, size); + tmpFont = this.Font.DPIScaleFont(size); } return tmpFont; @@ -219,7 +219,7 @@ namespace Sunny.UI if (tmpLegendFont == null || !tmpLegendFont.Size.EqualsFloat(size / UIDPIScale.DPIScale())) { tmpLegendFont?.Dispose(); - tmpLegendFont = this.DPIScaleFont(Font, size); + tmpLegendFont = this.Font.DPIScaleFont(size); } return tmpLegendFont; diff --git a/SunnyUI/Controls/DropItem/UIColorItem.cs b/SunnyUI/Controls/DropItem/UIColorItem.cs index f2a8f278..e5380e6e 100644 --- a/SunnyUI/Controls/DropItem/UIColorItem.cs +++ b/SunnyUI/Controls/DropItem/UIColorItem.cs @@ -605,7 +605,7 @@ namespace Sunny.UI e.Graphics.FillRectangle(c, r); } - public override void SetStyle(UIBaseStyle uiColor) + public override void SetStyleColor(UIBaseStyle uiColor) { base.SetStyleColor(uiColor); RectColor = uiColor.RectColor; diff --git a/SunnyUI/Controls/DropItem/UIComboDataGridViewItem.cs b/SunnyUI/Controls/DropItem/UIComboDataGridViewItem.cs index 5895d5f3..f765f75e 100644 --- a/SunnyUI/Controls/DropItem/UIComboDataGridViewItem.cs +++ b/SunnyUI/Controls/DropItem/UIComboDataGridViewItem.cs @@ -264,6 +264,18 @@ namespace Sunny.UI } + public override void SetStyleColor(UIBaseStyle uiColor) + { + base.SetStyleColor(uiColor); + pFilter.SetStyleColor(uiColor.DropDownStyle); + dataGridView.SetStyleColor(uiColor.DropDownStyle); + panel.SetStyleColor(uiColor.DropDownStyle); + edtFilter.SetStyleColor(uiColor.DropDownStyle); + btnOK.SetStyleColor(uiColor.DropDownStyle); + btnSearch.SetStyleColor(uiColor.DropDownStyle); + btnClear.SetStyleColor(uiColor.DropDownStyle); + } + private void DataGridView_DataSourceChanged(object sender, System.EventArgs e) { if (dataGridView.RowCount > 0) diff --git a/SunnyUI/Controls/DropItem/UIComboTreeViewItem.cs b/SunnyUI/Controls/DropItem/UIComboTreeViewItem.cs index fb65c7fb..8ae06963 100644 --- a/SunnyUI/Controls/DropItem/UIComboTreeViewItem.cs +++ b/SunnyUI/Controls/DropItem/UIComboTreeViewItem.cs @@ -150,8 +150,9 @@ namespace Sunny.UI } } - public override void SetStyle(UIBaseStyle style) + public override void SetStyleColor(UIBaseStyle style) { + base.SetStyleColor(style); treeView.Style = style.Name; panel.Style = style.Name; btnOK.Style = style.Name; diff --git a/SunnyUI/Controls/DropItem/UIDateItem.cs b/SunnyUI/Controls/DropItem/UIDateItem.cs index cbeb96c5..9534f80f 100644 --- a/SunnyUI/Controls/DropItem/UIDateItem.cs +++ b/SunnyUI/Controls/DropItem/UIDateItem.cs @@ -555,6 +555,8 @@ namespace Sunny.UI b2.SetStyleColor(uiColor); b3.SetStyleColor(uiColor); b4.SetStyleColor(uiColor); + fillColor = Color.White; + foreColor = uiColor.DropDownPanelForeColor; b1.FillColor = b2.FillColor = b3.FillColor = b4.FillColor = TopPanel.FillColor; RectColor = uiColor.RectColor; diff --git a/SunnyUI/Controls/DropItem/UIDateTimeItem.cs b/SunnyUI/Controls/DropItem/UIDateTimeItem.cs index 9500b08a..ca27417f 100644 --- a/SunnyUI/Controls/DropItem/UIDateTimeItem.cs +++ b/SunnyUI/Controls/DropItem/UIDateTimeItem.cs @@ -961,7 +961,13 @@ namespace Sunny.UI public override void SetStyleColor(UIBaseStyle uiColor) { base.SetStyleColor(uiColor); - FillColor = Color.White; + + btnOK.SetStyleColor(uiColor); + btnCancel.SetStyleColor(uiColor); + + fillColor = Color.White; + foreColor = uiColor.DropDownPanelForeColor; + b1.SetStyleColor(uiColor); b2.SetStyleColor(uiColor); b3.SetStyleColor(uiColor); @@ -989,13 +995,6 @@ namespace Sunny.UI s1.SymbolColor = s2.SymbolColor = RectColor; } - public override void SetStyle(UIBaseStyle style) - { - base.SetStyle(style); - btnOK.SetStyleColor(style); - btnCancel.SetStyleColor(style); - } - private void UITimeItem_MouseWheel(object sender, System.Windows.Forms.MouseEventArgs e) { if (e.Delta < 0) diff --git a/SunnyUI/Controls/DropItem/UIDropControl.cs b/SunnyUI/Controls/DropItem/UIDropControl.cs index bea247ea..03ac80c6 100644 --- a/SunnyUI/Controls/DropItem/UIDropControl.cs +++ b/SunnyUI/Controls/DropItem/UIDropControl.cs @@ -286,7 +286,7 @@ namespace Sunny.UI if (!edit.Visible) { - base.OnPaintFore(g, path); + g.DrawString(Text, Font, GetForeColor(), Size, Padding, TextAlignment); } g.FillRectangle(GetFillColor(), new Rectangle(Width - 27, Radius / 2, 26, Height - Radius)); @@ -367,7 +367,7 @@ namespace Sunny.UI public override void SetStyleColor(UIBaseStyle uiColor) { base.SetStyleColor(uiColor); - foreColor = uiColor.DropDownControlColor; + foreColor = uiColor.DropDownPanelForeColor; edit.BackColor = fillColor = Color.White; } @@ -394,7 +394,7 @@ namespace Sunny.UI ItemForm.SetRectColor(rectColor); ItemForm.SetFillColor(fillColor); ItemForm.SetForeColor(foreColor); - ItemForm.SetStyle(UIStyles.ActiveStyleColor); + ItemForm.SetStyle(UIStyles.ActiveStyleColor.DropDownStyle); } DropDown?.Invoke(this, e); diff --git a/SunnyUI/Controls/DropItem/UIDropDown.cs b/SunnyUI/Controls/DropItem/UIDropDown.cs index c78dad2d..f4a18f97 100644 --- a/SunnyUI/Controls/DropItem/UIDropDown.cs +++ b/SunnyUI/Controls/DropItem/UIDropDown.cs @@ -344,7 +344,7 @@ namespace Sunny.UI public void SetStyle(UIBaseStyle style) { - Item?.SetStyle(style); + Item?.SetStyleColor(style); } } } \ No newline at end of file diff --git a/SunnyUI/Controls/DropItem/UIDropDownItem.cs b/SunnyUI/Controls/DropItem/UIDropDownItem.cs index 37f10c51..f2dc1f0c 100644 --- a/SunnyUI/Controls/DropItem/UIDropDownItem.cs +++ b/SunnyUI/Controls/DropItem/UIDropDownItem.cs @@ -94,10 +94,6 @@ namespace Sunny.UI parent?.Close(); } - public virtual void SetStyle(UIBaseStyle style) - { - } - public virtual void InitShow() { diff --git a/SunnyUI/Controls/DropItem/UITimeItem.cs b/SunnyUI/Controls/DropItem/UITimeItem.cs index 8afa7621..76c272dd 100644 --- a/SunnyUI/Controls/DropItem/UITimeItem.cs +++ b/SunnyUI/Controls/DropItem/UITimeItem.cs @@ -595,17 +595,13 @@ namespace Sunny.UI Close(); } - public override void SetStyle(UIBaseStyle style) - { - base.SetStyle(style); - btnOK.SetStyleColor(style); - btnCancel.SetStyleColor(style); - } - public override void SetStyleColor(UIBaseStyle uiColor) { base.SetStyleColor(uiColor); + btnOK.SetStyleColor(uiColor); + btnCancel.SetStyleColor(uiColor); + h1.SetStyleColor(uiColor); h2.SetStyleColor(uiColor); m1.SetStyleColor(uiColor); diff --git a/SunnyUI/Controls/UIComboBox.cs b/SunnyUI/Controls/UIComboBox.cs index 80e8bbec..3780acec 100644 --- a/SunnyUI/Controls/UIComboBox.cs +++ b/SunnyUI/Controls/UIComboBox.cs @@ -208,7 +208,7 @@ namespace Sunny.UI public override void SetStyleColor(UIBaseStyle uiColor) { base.SetStyleColor(uiColor); - ListBox.SetStyleColor(uiColor); + ListBox.SetStyleColor(uiColor.DropDownStyle); } public object DataSource diff --git a/SunnyUI/Controls/UINavMenu.cs b/SunnyUI/Controls/UINavMenu.cs index fa5f147e..55e61b8d 100644 --- a/SunnyUI/Controls/UINavMenu.cs +++ b/SunnyUI/Controls/UINavMenu.cs @@ -765,7 +765,7 @@ namespace Sunny.UI if (tmpFont == null || !tmpFont.Size.EqualsFloat(TipsFont.DPIScaleFontSize())) { tmpFont?.Dispose(); - tmpFont = this.DPIScaleFont(TipsFont); + tmpFont = TipsFont.DPIScaleFont(); } return tmpFont; diff --git a/SunnyUI/Controls/UIPanel.cs b/SunnyUI/Controls/UIPanel.cs index 4030b8c1..bbb3f9c2 100644 --- a/SunnyUI/Controls/UIPanel.cs +++ b/SunnyUI/Controls/UIPanel.cs @@ -697,6 +697,7 @@ namespace Sunny.UI return Enabled ? (isReadOnly ? fillReadOnlyColor : fillColor) : fillDisableColor; } + /// /// 屏蔽原属性,获取或设置一个值,该值指示是否在 Windows 任务栏中显示窗体。 /// diff --git a/SunnyUI/Forms/UIForm.cs b/SunnyUI/Forms/UIForm.cs index 55cc4c29..4971f7d0 100644 --- a/SunnyUI/Forms/UIForm.cs +++ b/SunnyUI/Forms/UIForm.cs @@ -92,7 +92,7 @@ namespace Sunny.UI if (!UIDPIScale.DPIScaleIsOne()) { - TitleFont = this.DPIScaleFont(TitleFont); + TitleFont = TitleFont.DPIScaleFont(); } foreach (Control control in this.GetAllDPIScaleControls()) diff --git a/SunnyUI/Forms/UINotifier.cs b/SunnyUI/Forms/UINotifier.cs index fa97f144..db5c7ff6 100644 --- a/SunnyUI/Forms/UINotifier.cs +++ b/SunnyUI/Forms/UINotifier.cs @@ -50,9 +50,9 @@ namespace Sunny.UI { this.SetDPIScaleFont(); - noteTitle.Font = noteTitle.DPIScaleFont(noteTitle.Font); - noteContent.Font = noteContent.DPIScaleFont(noteContent.Font); - noteDate.Font = noteDate.DPIScaleFont(noteDate.Font); + noteTitle.Font = noteTitle.Font.DPIScaleFont(); + noteContent.Font = noteContent.Font.DPIScaleFont(); + noteDate.Font = noteDate.Font.DPIScaleFont(); foreach (Control control in this.GetAllDPIScaleControls()) { @@ -385,7 +385,7 @@ namespace Sunny.UI //------------------------------------------------------------------------------------------------------------------------------- private void onMenuClick(object sender, EventArgs e) { - closeAllToolStripMenuItem.Font = menu.DPIScaleFont(menu.Font); + closeAllToolStripMenuItem.Font = menu.Font.DPIScaleFont(); menu.Show(buttonMenu, new Point(0, buttonMenu.Height)); } diff --git a/SunnyUI/Frames/UIPage.cs b/SunnyUI/Frames/UIPage.cs index feca78c8..2eddb386 100644 --- a/SunnyUI/Frames/UIPage.cs +++ b/SunnyUI/Frames/UIPage.cs @@ -85,7 +85,7 @@ namespace Sunny.UI this.SetDPIScaleFont(); if (!UIDPIScale.DPIScaleIsOne()) { - this.TitleFont = this.DPIScaleFont(this.TitleFont); + this.TitleFont = TitleFont.DPIScaleFont(); } foreach (Control control in this.GetAllDPIScaleControls()) diff --git a/SunnyUI/Style/UIDPIScale.cs b/SunnyUI/Style/UIDPIScale.cs index 05ef635c..579db752 100644 --- a/SunnyUI/Style/UIDPIScale.cs +++ b/SunnyUI/Style/UIDPIScale.cs @@ -37,7 +37,7 @@ namespace Sunny.UI return DPIScale().EqualsFloat(1); } - public static float DPIScaleFontSize(this Control control, Font font) + internal static float DPIScaleFontSize(this Font font) { if (UIStyles.DPIScale) return font.Size / DPIScale(); @@ -45,43 +45,12 @@ namespace Sunny.UI return font.Size; } - public static float DPIScaleFontSize(this Font font) + internal static Font DPIScaleFont(this Font font) { - return font.Size.DPIScaleFontSize(); + return DPIScaleFont(font, font.Size); } - public static float DPIScaleFontSize(this float fontSize) - { - if (UIStyles.DPIScale) - return fontSize / DPIScale(); - else - return fontSize; - } - - public static Font DPIScaleFont(this Control control, Font font) - { - return control.DPIScaleFont(font, font.Size); - } - - public static Font DPIScaleFont(this Font font) - { - if (UIStyles.DPIScale) - { - if (font.GdiCharSet == 134) - return new Font(font.FontFamily, font.Size / DPIScale(), font.Style, font.Unit, font.GdiCharSet); - else - return new Font(font.FontFamily, font.Size / DPIScale()); - } - else - { - if (font.GdiCharSet == 134) - return new Font(font.FontFamily, font.Size, font.Style, font.Unit, font.GdiCharSet); - else - return new Font(font.FontFamily, font.Size); - } - } - - public static Font DPIScaleFont(this Control control, Font font, float fontSize) + internal static Font DPIScaleFont(this Font font, float fontSize) { if (UIStyles.DPIScale) { @@ -99,7 +68,7 @@ namespace Sunny.UI } } - public static void SetDPIScaleFont(this Control control) + internal static void SetDPIScaleFont(this Control control) { if (!UIStyles.DPIScale) return; if (!UIDPIScale.DPIScaleIsOne()) @@ -107,12 +76,12 @@ namespace Sunny.UI if (control is IStyleInterface ctrl) { if (!ctrl.IsScaled) - control.Font = control.DPIScaleFont(control.Font); + control.Font = control.Font.DPIScaleFont(); } } } - public static List GetAllDPIScaleControls(this Control control) + internal static List GetAllDPIScaleControls(this Control control) { var list = new List(); foreach (Control con in control.Controls) diff --git a/SunnyUI/Style/UIStyleColor.cs b/SunnyUI/Style/UIStyleColor.cs index fab86488..afb3ce8d 100644 --- a/SunnyUI/Style/UIStyleColor.cs +++ b/SunnyUI/Style/UIStyleColor.cs @@ -174,8 +174,10 @@ namespace Sunny.UI public virtual Color PanelTitleColor { get; protected set; } public virtual Color PanelTitleForeColor { get; protected set; } - //DrawDownControl + //DropDownControl public virtual Color DropDownControlColor { get; protected set; } + public virtual Color DropDownPanelFillColor { get; protected set; } + public virtual Color DropDownPanelForeColor { get; protected set; } //ListBox public virtual Color ListItemSelectBackColor { get; protected set; } @@ -222,6 +224,8 @@ namespace Sunny.UI protected Color ForeColor { get; set; } + public UIBaseStyle DropDownStyle { get; protected set; } + public virtual UIBaseStyle Init(Color color, UIStyle style, Color reverseColor, Color foreColor) { Name = style; @@ -356,6 +360,8 @@ namespace Sunny.UI TabControlBackColor = PlainColor; DropDownControlColor = foreColor; + DropDownPanelFillColor = PlainColor; + DropDownPanelForeColor = foreColor; ListItemSelectBackColor = PrimaryColor; ListItemSelectForeColor = PlainColor; @@ -384,6 +390,8 @@ namespace Sunny.UI FlowLayoutPanelBarFillColor = PlainColor; FlowLayoutPanelBarForeColor = PrimaryColor; + DropDownStyle = this; + return this; } @@ -568,6 +576,12 @@ namespace Sunny.UI ScrollingTextForeColor = ForeColor; LogoForeColor = UIFontColor.Primary; + + DropDownControlColor = ForeColor; + DropDownPanelFillColor = UIColor.LightBlue; + DropDownPanelForeColor = UIFontColor.Primary; + + DropDownStyle = UIStyles.Blue; } } @@ -674,6 +688,12 @@ namespace Sunny.UI ScrollingTextForeColor = ForeColor; LogoForeColor = UIFontColor.Primary; + + DropDownControlColor = ForeColor; + DropDownPanelFillColor = UIColor.LightBlue; + DropDownPanelForeColor = UIFontColor.Primary; + + DropDownStyle = UIStyles.Blue; } } } \ No newline at end of file