diff --git a/SunnyUI.Demo/Bin/SunnyUI.Common.dll b/SunnyUI.Demo/Bin/SunnyUI.Common.dll deleted file mode 100644 index 8bf46663..00000000 Binary files a/SunnyUI.Demo/Bin/SunnyUI.Common.dll and /dev/null differ diff --git a/SunnyUI.Demo/Bin/SunnyUI.Demo.exe b/SunnyUI.Demo/Bin/SunnyUI.Demo.exe deleted file mode 100644 index adcb8480..00000000 Binary files a/SunnyUI.Demo/Bin/SunnyUI.Demo.exe and /dev/null differ diff --git a/SunnyUI.Demo/Bin/SunnyUI.Demo.exe.config b/SunnyUI.Demo/Bin/SunnyUI.Demo.exe.config deleted file mode 100644 index 312bb3f2..00000000 --- a/SunnyUI.Demo/Bin/SunnyUI.Demo.exe.config +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/SunnyUI.Demo/Bin/SunnyUI.dll b/SunnyUI.Demo/Bin/SunnyUI.dll deleted file mode 100644 index 78552f9b..00000000 Binary files a/SunnyUI.Demo/Bin/SunnyUI.dll and /dev/null differ diff --git a/SunnyUI.Demo/Controls/FButton.Designer.cs b/SunnyUI.Demo/Controls/FButton.Designer.cs index f10a5a09..baa9cada 100644 --- a/SunnyUI.Demo/Controls/FButton.Designer.cs +++ b/SunnyUI.Demo/Controls/FButton.Designer.cs @@ -217,7 +217,9 @@ namespace Sunny.UI.Demo // // uiLine5 // + this.uiLine5.BackColor = System.Drawing.Color.Transparent; this.uiLine5.Font = new System.Drawing.Font("宋体", 12F); + this.uiLine5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLine5.Location = new System.Drawing.Point(388, 397); this.uiLine5.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine5.Name = "uiLine5"; @@ -239,7 +241,9 @@ namespace Sunny.UI.Demo // // uiLine4 // + this.uiLine4.BackColor = System.Drawing.Color.Transparent; this.uiLine4.Font = new System.Drawing.Font("宋体", 12F); + this.uiLine4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLine4.Location = new System.Drawing.Point(30, 397); this.uiLine4.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine4.Name = "uiLine4"; @@ -422,7 +426,9 @@ namespace Sunny.UI.Demo // // uiLine3 // + this.uiLine3.BackColor = System.Drawing.Color.Transparent; this.uiLine3.Font = new System.Drawing.Font("宋体", 12F); + this.uiLine3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLine3.Location = new System.Drawing.Point(30, 315); this.uiLine3.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine3.Name = "uiLine3"; @@ -449,7 +455,7 @@ namespace Sunny.UI.Demo this.uiSymbolButton7.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(184)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.uiSymbolButton7.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(184)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.uiSymbolButton7.Size = new System.Drawing.Size(35, 35); - this.uiSymbolButton7.Style = Sunny.UI.UIStyle.Red; + this.uiSymbolButton7.Style = Sunny.UI.UIStyle.Custom; this.uiSymbolButton7.StyleCustomMode = true; this.uiSymbolButton7.Symbol = 61809; this.uiSymbolButton7.TabIndex = 90; @@ -473,7 +479,7 @@ namespace Sunny.UI.Demo this.uiSymbolButton8.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(124)))), ((int)(((byte)(32))))); this.uiSymbolButton8.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(124)))), ((int)(((byte)(32))))); this.uiSymbolButton8.Size = new System.Drawing.Size(35, 35); - this.uiSymbolButton8.Style = Sunny.UI.UIStyle.Orange; + this.uiSymbolButton8.Style = Sunny.UI.UIStyle.Custom; this.uiSymbolButton8.StyleCustomMode = true; this.uiSymbolButton8.Symbol = 61445; this.uiSymbolButton8.TabIndex = 89; @@ -497,7 +503,7 @@ namespace Sunny.UI.Demo this.uiSymbolButton9.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(152)))), ((int)(((byte)(32))))); this.uiSymbolButton9.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(152)))), ((int)(((byte)(32))))); this.uiSymbolButton9.Size = new System.Drawing.Size(35, 35); - this.uiSymbolButton9.Style = Sunny.UI.UIStyle.Green; + this.uiSymbolButton9.Style = Sunny.UI.UIStyle.Custom; this.uiSymbolButton9.StyleCustomMode = true; this.uiSymbolButton9.Symbol = 57607; this.uiSymbolButton9.TabIndex = 88; @@ -535,7 +541,7 @@ namespace Sunny.UI.Demo this.uiSymbolButton11.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(184)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.uiSymbolButton11.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(184)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.uiSymbolButton11.Size = new System.Drawing.Size(35, 35); - this.uiSymbolButton11.Style = Sunny.UI.UIStyle.Red; + this.uiSymbolButton11.Style = Sunny.UI.UIStyle.Custom; this.uiSymbolButton11.StyleCustomMode = true; this.uiSymbolButton11.Symbol = 61508; this.uiSymbolButton11.TabIndex = 86; @@ -578,7 +584,7 @@ namespace Sunny.UI.Demo this.uiSymbolButton6.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(184)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.uiSymbolButton6.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(184)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.uiSymbolButton6.Size = new System.Drawing.Size(100, 35); - this.uiSymbolButton6.Style = Sunny.UI.UIStyle.Red; + this.uiSymbolButton6.Style = Sunny.UI.UIStyle.Custom; this.uiSymbolButton6.StyleCustomMode = true; this.uiSymbolButton6.Symbol = 61532; this.uiSymbolButton6.TabIndex = 84; @@ -602,7 +608,7 @@ namespace Sunny.UI.Demo this.uiSymbolButton5.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(124)))), ((int)(((byte)(32))))); this.uiSymbolButton5.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(124)))), ((int)(((byte)(32))))); this.uiSymbolButton5.Size = new System.Drawing.Size(100, 35); - this.uiSymbolButton5.Style = Sunny.UI.UIStyle.Orange; + this.uiSymbolButton5.Style = Sunny.UI.UIStyle.Custom; this.uiSymbolButton5.StyleCustomMode = true; this.uiSymbolButton5.Symbol = 61553; this.uiSymbolButton5.TabIndex = 83; @@ -626,7 +632,7 @@ namespace Sunny.UI.Demo this.uiSymbolButton3.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(152)))), ((int)(((byte)(32))))); this.uiSymbolButton3.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(152)))), ((int)(((byte)(32))))); this.uiSymbolButton3.Size = new System.Drawing.Size(100, 35); - this.uiSymbolButton3.Style = Sunny.UI.UIStyle.Green; + this.uiSymbolButton3.Style = Sunny.UI.UIStyle.Custom; this.uiSymbolButton3.StyleCustomMode = true; this.uiSymbolButton3.Symbol = 61530; this.uiSymbolButton3.TabIndex = 82; @@ -665,7 +671,7 @@ namespace Sunny.UI.Demo this.uiSymbolButton2.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(184)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.uiSymbolButton2.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(184)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.uiSymbolButton2.Size = new System.Drawing.Size(100, 35); - this.uiSymbolButton2.Style = Sunny.UI.UIStyle.Red; + this.uiSymbolButton2.Style = Sunny.UI.UIStyle.Custom; this.uiSymbolButton2.StyleCustomMode = true; this.uiSymbolButton2.Symbol = 61453; this.uiSymbolButton2.TabIndex = 80; @@ -688,7 +694,9 @@ namespace Sunny.UI.Demo // // uiLine2 // + this.uiLine2.BackColor = System.Drawing.Color.Transparent; this.uiLine2.Font = new System.Drawing.Font("宋体", 12F); + this.uiLine2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLine2.Location = new System.Drawing.Point(30, 185); this.uiLine2.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine2.Name = "uiLine2"; @@ -699,7 +707,9 @@ namespace Sunny.UI.Demo // // uiLine1 // + this.uiLine1.BackColor = System.Drawing.Color.Transparent; this.uiLine1.Font = new System.Drawing.Font("宋体", 12F); + this.uiLine1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLine1.Location = new System.Drawing.Point(30, 55); this.uiLine1.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine1.Name = "uiLine1"; @@ -726,7 +736,7 @@ namespace Sunny.UI.Demo this.uiButton13.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(184)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.uiButton13.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(184)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.uiButton13.Size = new System.Drawing.Size(100, 35); - this.uiButton13.Style = Sunny.UI.UIStyle.Red; + this.uiButton13.Style = Sunny.UI.UIStyle.Custom; this.uiButton13.StyleCustomMode = true; this.uiButton13.TabIndex = 76; this.uiButton13.Text = "Red"; @@ -750,7 +760,7 @@ namespace Sunny.UI.Demo this.uiButton14.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(124)))), ((int)(((byte)(32))))); this.uiButton14.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(124)))), ((int)(((byte)(32))))); this.uiButton14.Size = new System.Drawing.Size(100, 35); - this.uiButton14.Style = Sunny.UI.UIStyle.Orange; + this.uiButton14.Style = Sunny.UI.UIStyle.Custom; this.uiButton14.StyleCustomMode = true; this.uiButton14.TabIndex = 75; this.uiButton14.Text = "Orange"; @@ -774,7 +784,7 @@ namespace Sunny.UI.Demo this.uiButton15.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(112)))), ((int)(((byte)(112)))), ((int)(((byte)(112))))); this.uiButton15.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(112)))), ((int)(((byte)(112)))), ((int)(((byte)(112))))); this.uiButton15.Size = new System.Drawing.Size(100, 35); - this.uiButton15.Style = Sunny.UI.UIStyle.Gray; + this.uiButton15.Style = Sunny.UI.UIStyle.Custom; this.uiButton15.StyleCustomMode = true; this.uiButton15.TabIndex = 74; this.uiButton15.Text = "Gray"; @@ -798,7 +808,7 @@ namespace Sunny.UI.Demo this.uiButton16.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(152)))), ((int)(((byte)(32))))); this.uiButton16.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(152)))), ((int)(((byte)(32))))); this.uiButton16.Size = new System.Drawing.Size(100, 35); - this.uiButton16.Style = Sunny.UI.UIStyle.Green; + this.uiButton16.Style = Sunny.UI.UIStyle.Custom; this.uiButton16.StyleCustomMode = true; this.uiButton16.TabIndex = 73; this.uiButton16.Text = "Green"; @@ -813,6 +823,7 @@ namespace Sunny.UI.Demo this.uiButton17.Name = "uiButton17"; this.uiButton17.Radius = 35; this.uiButton17.Size = new System.Drawing.Size(100, 35); + this.uiButton17.Style = Sunny.UI.UIStyle.Custom; this.uiButton17.StyleCustomMode = true; this.uiButton17.TabIndex = 72; this.uiButton17.Text = "Blue"; @@ -849,7 +860,7 @@ namespace Sunny.UI.Demo this.uiButton4.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(184)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.uiButton4.ShowFocusLine = true; this.uiButton4.Size = new System.Drawing.Size(100, 35); - this.uiButton4.Style = Sunny.UI.UIStyle.Red; + this.uiButton4.Style = Sunny.UI.UIStyle.Custom; this.uiButton4.StyleCustomMode = true; this.uiButton4.TabIndex = 64; this.uiButton4.Text = "Red"; @@ -873,7 +884,7 @@ namespace Sunny.UI.Demo this.uiButton5.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(124)))), ((int)(((byte)(32))))); this.uiButton5.ShowFocusLine = true; this.uiButton5.Size = new System.Drawing.Size(100, 35); - this.uiButton5.Style = Sunny.UI.UIStyle.Orange; + this.uiButton5.Style = Sunny.UI.UIStyle.Custom; this.uiButton5.StyleCustomMode = true; this.uiButton5.TabIndex = 63; this.uiButton5.Text = "Orange"; @@ -897,7 +908,7 @@ namespace Sunny.UI.Demo this.uiButton6.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(112)))), ((int)(((byte)(112)))), ((int)(((byte)(112))))); this.uiButton6.ShowFocusLine = true; this.uiButton6.Size = new System.Drawing.Size(100, 35); - this.uiButton6.Style = Sunny.UI.UIStyle.Gray; + this.uiButton6.Style = Sunny.UI.UIStyle.Custom; this.uiButton6.StyleCustomMode = true; this.uiButton6.TabIndex = 62; this.uiButton6.Text = "Gray"; @@ -921,7 +932,7 @@ namespace Sunny.UI.Demo this.uiButton3.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(152)))), ((int)(((byte)(32))))); this.uiButton3.ShowFocusLine = true; this.uiButton3.Size = new System.Drawing.Size(100, 35); - this.uiButton3.Style = Sunny.UI.UIStyle.Green; + this.uiButton3.Style = Sunny.UI.UIStyle.Custom; this.uiButton3.StyleCustomMode = true; this.uiButton3.TabIndex = 61; this.uiButton3.Text = "Green"; @@ -937,6 +948,7 @@ namespace Sunny.UI.Demo this.uiButton2.ShowFocusLine = true; this.uiButton2.ShowTips = true; this.uiButton2.Size = new System.Drawing.Size(100, 35); + this.uiButton2.Style = Sunny.UI.UIStyle.Custom; this.uiButton2.StyleCustomMode = true; this.uiButton2.TabIndex = 60; this.uiButton2.Text = "Blue"; diff --git a/SunnyUI.Demo/Controls/FCheckBox.Designer.cs b/SunnyUI.Demo/Controls/FCheckBox.Designer.cs index 5fefa705..41a8dbea 100644 --- a/SunnyUI.Demo/Controls/FCheckBox.Designer.cs +++ b/SunnyUI.Demo/Controls/FCheckBox.Designer.cs @@ -48,66 +48,72 @@ namespace Sunny.UI.Demo // this.uiButton5.Cursor = System.Windows.Forms.Cursors.Hand; this.uiButton5.Font = new System.Drawing.Font("宋体", 12F); - this.uiButton5.Location = new System.Drawing.Point(454, 345); + this.uiButton5.Location = new System.Drawing.Point(454, 366); this.uiButton5.MinimumSize = new System.Drawing.Size(1, 1); this.uiButton5.Name = "uiButton5"; this.uiButton5.Size = new System.Drawing.Size(100, 35); this.uiButton5.TabIndex = 57; this.uiButton5.Text = "清空"; + this.uiButton5.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiButton5.Click += new System.EventHandler(this.uiButton5_Click); // // uiButton4 // this.uiButton4.Cursor = System.Windows.Forms.Cursors.Hand; this.uiButton4.Font = new System.Drawing.Font("宋体", 12F); - this.uiButton4.Location = new System.Drawing.Point(348, 345); + this.uiButton4.Location = new System.Drawing.Point(348, 366); this.uiButton4.MinimumSize = new System.Drawing.Size(1, 1); this.uiButton4.Name = "uiButton4"; this.uiButton4.Size = new System.Drawing.Size(100, 35); this.uiButton4.TabIndex = 56; this.uiButton4.Text = "选择"; + this.uiButton4.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiButton4.Click += new System.EventHandler(this.uiButton4_Click); // // uiButton3 // this.uiButton3.Cursor = System.Windows.Forms.Cursors.Hand; this.uiButton3.Font = new System.Drawing.Font("宋体", 12F); - this.uiButton3.Location = new System.Drawing.Point(242, 345); + this.uiButton3.Location = new System.Drawing.Point(242, 366); this.uiButton3.MinimumSize = new System.Drawing.Size(1, 1); this.uiButton3.Name = "uiButton3"; this.uiButton3.Size = new System.Drawing.Size(100, 35); this.uiButton3.TabIndex = 55; this.uiButton3.Text = "反选"; + this.uiButton3.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiButton3.Click += new System.EventHandler(this.uiButton3_Click); // // uiButton2 // this.uiButton2.Cursor = System.Windows.Forms.Cursors.Hand; this.uiButton2.Font = new System.Drawing.Font("宋体", 12F); - this.uiButton2.Location = new System.Drawing.Point(136, 345); + this.uiButton2.Location = new System.Drawing.Point(136, 366); this.uiButton2.MinimumSize = new System.Drawing.Size(1, 1); this.uiButton2.Name = "uiButton2"; this.uiButton2.Size = new System.Drawing.Size(100, 35); this.uiButton2.TabIndex = 54; this.uiButton2.Text = "全不选"; + this.uiButton2.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiButton2.Click += new System.EventHandler(this.uiButton2_Click); // // uiButton1 // this.uiButton1.Cursor = System.Windows.Forms.Cursors.Hand; this.uiButton1.Font = new System.Drawing.Font("宋体", 12F); - this.uiButton1.Location = new System.Drawing.Point(30, 345); + this.uiButton1.Location = new System.Drawing.Point(30, 366); this.uiButton1.MinimumSize = new System.Drawing.Size(1, 1); this.uiButton1.Name = "uiButton1"; this.uiButton1.Size = new System.Drawing.Size(100, 35); this.uiButton1.TabIndex = 53; this.uiButton1.Text = "全选"; + this.uiButton1.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiButton1.Click += new System.EventHandler(this.uiButton1_Click); // // uiCheckBoxGroup1 // this.uiCheckBoxGroup1.ColumnCount = 2; this.uiCheckBoxGroup1.Font = new System.Drawing.Font("宋体", 12F); + this.uiCheckBoxGroup1.HoverColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(236)))), ((int)(((byte)(255))))); this.uiCheckBoxGroup1.Items.AddRange(new object[] { "0", "1", @@ -125,16 +131,18 @@ namespace Sunny.UI.Demo this.uiCheckBoxGroup1.MinimumSize = new System.Drawing.Size(1, 1); this.uiCheckBoxGroup1.Name = "uiCheckBoxGroup1"; this.uiCheckBoxGroup1.Padding = new System.Windows.Forms.Padding(0, 32, 0, 0); - this.uiCheckBoxGroup1.Size = new System.Drawing.Size(670, 211); + this.uiCheckBoxGroup1.SelectedIndexes = ((System.Collections.Generic.List)(resources.GetObject("uiCheckBoxGroup1.SelectedIndexes"))); + this.uiCheckBoxGroup1.Size = new System.Drawing.Size(670, 226); this.uiCheckBoxGroup1.TabIndex = 52; this.uiCheckBoxGroup1.Text = "UICheckBoxGroup"; - this.uiCheckBoxGroup1.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter; + this.uiCheckBoxGroup1.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; this.uiCheckBoxGroup1.ValueChanged += new Sunny.UI.UICheckBoxGroup.OnValueChanged(this.uiCheckBoxGroup1_ValueChanged); // // uiCheckBox2 // this.uiCheckBox2.Cursor = System.Windows.Forms.Cursors.Hand; this.uiCheckBox2.Font = new System.Drawing.Font("宋体", 12F); + this.uiCheckBox2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiCheckBox2.Location = new System.Drawing.Point(192, 83); this.uiCheckBox2.MinimumSize = new System.Drawing.Size(1, 1); this.uiCheckBox2.Name = "uiCheckBox2"; @@ -148,6 +156,7 @@ namespace Sunny.UI.Demo this.uiCheckBox4.Cursor = System.Windows.Forms.Cursors.Hand; this.uiCheckBox4.Enabled = false; this.uiCheckBox4.Font = new System.Drawing.Font("宋体", 12F); + this.uiCheckBox4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiCheckBox4.Location = new System.Drawing.Point(516, 81); this.uiCheckBox4.MinimumSize = new System.Drawing.Size(1, 1); this.uiCheckBox4.Name = "uiCheckBox4"; @@ -162,6 +171,7 @@ namespace Sunny.UI.Demo this.uiCheckBox3.Cursor = System.Windows.Forms.Cursors.Hand; this.uiCheckBox3.Enabled = false; this.uiCheckBox3.Font = new System.Drawing.Font("宋体", 12F); + this.uiCheckBox3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiCheckBox3.Location = new System.Drawing.Point(354, 81); this.uiCheckBox3.MinimumSize = new System.Drawing.Size(1, 1); this.uiCheckBox3.Name = "uiCheckBox3"; @@ -172,7 +182,9 @@ namespace Sunny.UI.Demo // // uiLine1 // + this.uiLine1.BackColor = System.Drawing.Color.Transparent; this.uiLine1.Font = new System.Drawing.Font("宋体", 12F); + this.uiLine1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLine1.Location = new System.Drawing.Point(30, 55); this.uiLine1.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine1.Name = "uiLine1"; @@ -186,6 +198,7 @@ namespace Sunny.UI.Demo this.uiCheckBox1.Checked = true; this.uiCheckBox1.Cursor = System.Windows.Forms.Cursors.Hand; this.uiCheckBox1.Font = new System.Drawing.Font("宋体", 12F); + this.uiCheckBox1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiCheckBox1.Location = new System.Drawing.Point(30, 83); this.uiCheckBox1.MinimumSize = new System.Drawing.Size(1, 1); this.uiCheckBox1.Name = "uiCheckBox1"; @@ -199,12 +212,13 @@ namespace Sunny.UI.Demo // this.uiButton6.Cursor = System.Windows.Forms.Cursors.Hand; this.uiButton6.Font = new System.Drawing.Font("宋体", 12F); - this.uiButton6.Location = new System.Drawing.Point(560, 345); + this.uiButton6.Location = new System.Drawing.Point(560, 366); this.uiButton6.MinimumSize = new System.Drawing.Size(1, 1); this.uiButton6.Name = "uiButton6"; this.uiButton6.Size = new System.Drawing.Size(100, 35); this.uiButton6.TabIndex = 58; this.uiButton6.Text = "单选"; + this.uiButton6.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiButton6.Click += new System.EventHandler(this.uiButton6_Click); // // FCheckBox diff --git a/SunnyUI.Demo/Controls/FCheckBox.cs b/SunnyUI.Demo/Controls/FCheckBox.cs index 8393e9c7..46e87845 100644 --- a/SunnyUI.Demo/Controls/FCheckBox.cs +++ b/SunnyUI.Demo/Controls/FCheckBox.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Text; namespace Sunny.UI.Demo { @@ -37,17 +36,12 @@ namespace Sunny.UI.Demo uiCheckBoxGroup1.Clear(); } - private void uiCheckBoxGroup1_ValueChanged(object sender, int index, string text, bool isChecked) + private void uiCheckBoxGroup1_ValueChanged(object sender, CheckBoxGroupEventArgs e) { - StringBuilder sb = new StringBuilder(); - sb.Append("SelectedIndexes: "); - foreach (var selectedIndex in uiCheckBoxGroup1.SelectedIndexes) - { - sb.Append(selectedIndex); - sb.Append(", "); - } - - Console.WriteLine("SelectedIndex: " + index + ", SelectedText: " + text + "\n" + sb.ToString()); + if (e.Index >= 0) + Console.WriteLine("SelectedIndex: " + e.Index + ", SelectedText: " + e.Text + ", Checked: " + e.Checked + "\n" + "SelectedIndexes: " + string.Join(", ", e.SelectedIndexes)); + else + Console.WriteLine("SelectedIndexes: " + string.Join(", ", e.SelectedIndexes)); } private void uiCheckBox1_CheckedChanged(object sender, EventArgs e) diff --git a/SunnyUI.Demo/Controls/FCheckBox.resx b/SunnyUI.Demo/Controls/FCheckBox.resx index 1af7de15..a9d4ffb3 100644 --- a/SunnyUI.Demo/Controls/FCheckBox.resx +++ b/SunnyUI.Demo/Controls/FCheckBox.resx @@ -117,4 +117,13 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u + ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u + PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB + AAAAL1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLkludDMyAwAAAAZfaXRl + bXMFX3NpemUIX3ZlcnNpb24HAAAICAgCAAAACQMAAAAAAAAAAAAAAA8DAAAAAAAAAAgL + + \ No newline at end of file diff --git a/SunnyUI.Demo/Controls/FDataGridView.Designer.cs b/SunnyUI.Demo/Controls/FDataGridView.Designer.cs index f2efb254..28d72c14 100644 --- a/SunnyUI.Demo/Controls/FDataGridView.Designer.cs +++ b/SunnyUI.Demo/Controls/FDataGridView.Designer.cs @@ -36,12 +36,12 @@ namespace Sunny.UI.Demo System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); this.uiDataGridViewFooter1 = new Sunny.UI.UIDataGridViewFooter(); this.uiDataGridView1 = new Sunny.UI.UIDataGridView(); - this.uiPagination1 = new Sunny.UI.UIPagination(); - this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker(); this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.uiPagination1 = new Sunny.UI.UIPagination(); + this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker(); ((System.ComponentModel.ISupportInitialize)(this.uiDataGridView1)).BeginInit(); this.SuspendLayout(); // @@ -113,33 +113,10 @@ namespace Sunny.UI.Demo dataGridViewCellStyle5.SelectionForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiDataGridView1.RowsDefaultCellStyle = dataGridViewCellStyle5; this.uiDataGridView1.RowTemplate.Height = 23; - this.uiDataGridView1.ScrollBarRectColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(160)))), ((int)(((byte)(255))))); this.uiDataGridView1.SelectedIndex = -1; this.uiDataGridView1.Size = new System.Drawing.Size(800, 351); this.uiDataGridView1.TabIndex = 6; // - // uiPagination1 - // - this.uiPagination1.ActivePage = 20; - this.uiPagination1.CausesValidation = false; - this.uiPagination1.Dock = System.Windows.Forms.DockStyle.Bottom; - this.uiPagination1.Font = new System.Drawing.Font("宋体", 12F); - this.uiPagination1.Location = new System.Drawing.Point(0, 415); - this.uiPagination1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.uiPagination1.MinimumSize = new System.Drawing.Size(1, 1); - this.uiPagination1.Name = "uiPagination1"; - this.uiPagination1.PagerCount = 11; - this.uiPagination1.PageSize = 50; - this.uiPagination1.RadiusSides = Sunny.UI.UICornerRadiusSides.None; - this.uiPagination1.RectSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.None; - this.uiPagination1.ShowText = false; - this.uiPagination1.Size = new System.Drawing.Size(800, 35); - this.uiPagination1.TabIndex = 4; - this.uiPagination1.Text = "uiDataGridPage1"; - this.uiPagination1.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter; - this.uiPagination1.TotalCount = 40000; - this.uiPagination1.PageChanged += new Sunny.UI.UIPagination.OnPageChangeEventHandler(this.uiPagination1_PageChanged); - // // Column1 // this.Column1.DataPropertyName = "Column1"; @@ -168,6 +145,28 @@ namespace Sunny.UI.Demo this.Column4.Name = "Column4"; this.Column4.Width = 200; // + // uiPagination1 + // + this.uiPagination1.ActivePage = 20; + this.uiPagination1.CausesValidation = false; + this.uiPagination1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.uiPagination1.Font = new System.Drawing.Font("宋体", 12F); + this.uiPagination1.Location = new System.Drawing.Point(0, 415); + this.uiPagination1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.uiPagination1.MinimumSize = new System.Drawing.Size(1, 1); + this.uiPagination1.Name = "uiPagination1"; + this.uiPagination1.PagerCount = 11; + this.uiPagination1.PageSize = 50; + this.uiPagination1.RadiusSides = Sunny.UI.UICornerRadiusSides.None; + this.uiPagination1.RectSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.None; + this.uiPagination1.ShowText = false; + this.uiPagination1.Size = new System.Drawing.Size(800, 35); + this.uiPagination1.TabIndex = 4; + this.uiPagination1.Text = "uiDataGridPage1"; + this.uiPagination1.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter; + this.uiPagination1.TotalCount = 40000; + this.uiPagination1.PageChanged += new Sunny.UI.UIPagination.OnPageChangeEventHandler(this.uiPagination1_PageChanged); + // // FDataGridView // this.AllowShowTitle = true; diff --git a/SunnyUI.Demo/Controls/FFlowLayoutPanel.cs b/SunnyUI.Demo/Controls/FFlowLayoutPanel.cs index 3f9bd942..cd455bb4 100644 --- a/SunnyUI.Demo/Controls/FFlowLayoutPanel.cs +++ b/SunnyUI.Demo/Controls/FFlowLayoutPanel.cs @@ -41,6 +41,8 @@ namespace Sunny.UI.Demo //----uiFlowLayoutPanel1.Controls.Add(btn);---- uiButton3.Enabled = true; + + this.Render(); } private void Btn_Click(object sender, System.EventArgs e) diff --git a/SunnyUI.Demo/Controls/FListBox.Designer.cs b/SunnyUI.Demo/Controls/FListBox.Designer.cs index 7af2709e..3de34c9c 100644 --- a/SunnyUI.Demo/Controls/FListBox.Designer.cs +++ b/SunnyUI.Demo/Controls/FListBox.Designer.cs @@ -47,6 +47,7 @@ namespace Sunny.UI.Demo this.uiButton1.Size = new System.Drawing.Size(100, 35); this.uiButton1.TabIndex = 29; this.uiButton1.Text = "Add Item"; + this.uiButton1.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiButton1.Click += new System.EventHandler(this.uiButton1_Click); // // uiCheckBox1 @@ -54,6 +55,7 @@ namespace Sunny.UI.Demo this.uiCheckBox1.Checked = true; this.uiCheckBox1.Cursor = System.Windows.Forms.Cursors.Hand; this.uiCheckBox1.Font = new System.Drawing.Font("宋体", 12F); + this.uiCheckBox1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiCheckBox1.Location = new System.Drawing.Point(352, 440); this.uiCheckBox1.MinimumSize = new System.Drawing.Size(1, 1); this.uiCheckBox1.Name = "uiCheckBox1"; @@ -67,13 +69,14 @@ namespace Sunny.UI.Demo // this.uiListBox1.FillColor = System.Drawing.Color.White; this.uiListBox1.Font = new System.Drawing.Font("宋体", 12F); - this.uiListBox1.FormatString = ""; + this.uiListBox1.HoverColor = System.Drawing.Color.FromArgb(((int)(((byte)(155)))), ((int)(((byte)(200)))), ((int)(((byte)(255))))); this.uiListBox1.ItemSelectForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(243)))), ((int)(((byte)(255))))); this.uiListBox1.Location = new System.Drawing.Point(30, 85); this.uiListBox1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.uiListBox1.MinimumSize = new System.Drawing.Size(1, 1); this.uiListBox1.Name = "uiListBox1"; this.uiListBox1.Padding = new System.Windows.Forms.Padding(2); + this.uiListBox1.ShowText = false; this.uiListBox1.Size = new System.Drawing.Size(270, 343); this.uiListBox1.TabIndex = 27; this.uiListBox1.Text = "uiListBox1"; @@ -82,18 +85,22 @@ namespace Sunny.UI.Demo // // uiLine2 // + this.uiLine2.BackColor = System.Drawing.Color.Transparent; this.uiLine2.Font = new System.Drawing.Font("宋体", 12F); - this.uiLine2.Location = new System.Drawing.Point(352, 55); + this.uiLine2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); + this.uiLine2.Location = new System.Drawing.Point(352, 51); this.uiLine2.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine2.Name = "uiLine2"; - this.uiLine2.Size = new System.Drawing.Size(266, 18); + this.uiLine2.Size = new System.Drawing.Size(266, 27); this.uiLine2.TabIndex = 26; this.uiLine2.Text = "uiImageListBox"; this.uiLine2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // // uiLine1 // + this.uiLine1.BackColor = System.Drawing.Color.Transparent; this.uiLine1.Font = new System.Drawing.Font("宋体", 12F); + this.uiLine1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLine1.Location = new System.Drawing.Point(30, 55); this.uiLine1.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine1.Name = "uiLine1"; @@ -106,6 +113,7 @@ namespace Sunny.UI.Demo // this.uiImageListBox1.FillColor = System.Drawing.Color.White; this.uiImageListBox1.Font = new System.Drawing.Font("宋体", 12F); + this.uiImageListBox1.HoverColor = System.Drawing.Color.FromArgb(((int)(((byte)(155)))), ((int)(((byte)(200)))), ((int)(((byte)(255))))); this.uiImageListBox1.ItemHeight = 80; this.uiImageListBox1.ItemSelectForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(243)))), ((int)(((byte)(255))))); this.uiImageListBox1.Location = new System.Drawing.Point(352, 85); @@ -113,6 +121,7 @@ namespace Sunny.UI.Demo this.uiImageListBox1.MinimumSize = new System.Drawing.Size(1, 1); this.uiImageListBox1.Name = "uiImageListBox1"; this.uiImageListBox1.Padding = new System.Windows.Forms.Padding(2); + this.uiImageListBox1.ShowText = false; this.uiImageListBox1.Size = new System.Drawing.Size(266, 343); this.uiImageListBox1.TabIndex = 24; this.uiImageListBox1.Text = "uiImageListBox1"; diff --git a/SunnyUI.Demo/Controls/FNavigation.Designer.cs b/SunnyUI.Demo/Controls/FNavigation.Designer.cs index fe850b40..c45ec9ca 100644 --- a/SunnyUI.Demo/Controls/FNavigation.Designer.cs +++ b/SunnyUI.Demo/Controls/FNavigation.Designer.cs @@ -123,7 +123,9 @@ namespace Sunny.UI.Demo // // uiLine2 // + this.uiLine2.BackColor = System.Drawing.Color.Transparent; this.uiLine2.Font = new System.Drawing.Font("宋体", 12F); + this.uiLine2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLine2.Location = new System.Drawing.Point(30, 160); this.uiLine2.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine2.Name = "uiLine2"; @@ -137,7 +139,6 @@ namespace Sunny.UI.Demo this.uiNavMenu2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(240)))), ((int)(((byte)(240)))), ((int)(((byte)(240))))); this.uiNavMenu2.BorderStyle = System.Windows.Forms.BorderStyle.None; this.uiNavMenu2.DrawMode = System.Windows.Forms.TreeViewDrawMode.OwnerDrawAll; - this.uiNavMenu2.ExpandSelectFirst = true; this.uiNavMenu2.FillColor = System.Drawing.Color.FromArgb(((int)(((byte)(240)))), ((int)(((byte)(240)))), ((int)(((byte)(240))))); this.uiNavMenu2.Font = new System.Drawing.Font("宋体", 12F); this.uiNavMenu2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); @@ -204,18 +205,22 @@ namespace Sunny.UI.Demo treeNode19, treeNode20, treeNode21}); + this.uiNavMenu2.ScrollBarColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); + this.uiNavMenu2.ScrollBarHoverColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); + this.uiNavMenu2.ScrollBarPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); + this.uiNavMenu2.ScrollFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(240)))), ((int)(((byte)(240)))), ((int)(((byte)(240))))); this.uiNavMenu2.SecondBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235))))); this.uiNavMenu2.SelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); + this.uiNavMenu2.SelectedColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); this.uiNavMenu2.ShowLines = false; this.uiNavMenu2.Size = new System.Drawing.Size(253, 353); - this.uiNavMenu2.Style = Sunny.UI.UIStyle.Custom; this.uiNavMenu2.TabIndex = 22; + this.uiNavMenu2.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); // // uiNavMenu1 // this.uiNavMenu1.BorderStyle = System.Windows.Forms.BorderStyle.None; this.uiNavMenu1.DrawMode = System.Windows.Forms.TreeViewDrawMode.OwnerDrawAll; - this.uiNavMenu1.ExpandSelectFirst = true; this.uiNavMenu1.Font = new System.Drawing.Font("宋体", 12F); this.uiNavMenu1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(240)))), ((int)(((byte)(240)))), ((int)(((byte)(240))))); this.uiNavMenu1.FullRowSelect = true; @@ -283,12 +288,14 @@ namespace Sunny.UI.Demo this.uiNavMenu1.ShowLines = false; this.uiNavMenu1.Size = new System.Drawing.Size(253, 353); this.uiNavMenu1.TabIndex = 21; + this.uiNavMenu1.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiNavMenu1.MenuItemClick += new Sunny.UI.UINavMenu.OnMenuItemClick(this.uiNavMenu1_MenuItemClick); // // uiNavBar1 // this.uiNavBar1.Controls.Add(this.uiLine1); this.uiNavBar1.Dock = System.Windows.Forms.DockStyle.Top; + this.uiNavBar1.DropMenuFont = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiNavBar1.Font = new System.Drawing.Font("宋体", 12F); this.uiNavBar1.Location = new System.Drawing.Point(0, 35); this.uiNavBar1.Name = "uiNavBar1"; @@ -337,6 +344,7 @@ namespace Sunny.UI.Demo // // uiLine1 // + this.uiLine1.BackColor = System.Drawing.Color.Transparent; this.uiLine1.FillColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); this.uiLine1.Font = new System.Drawing.Font("宋体", 12F); this.uiLine1.ForeColor = System.Drawing.Color.White; diff --git a/SunnyUI.Demo/Controls/FRadioButton.Designer.cs b/SunnyUI.Demo/Controls/FRadioButton.Designer.cs index 8f7f4208..9dd4696f 100644 --- a/SunnyUI.Demo/Controls/FRadioButton.Designer.cs +++ b/SunnyUI.Demo/Controls/FRadioButton.Designer.cs @@ -62,6 +62,7 @@ namespace Sunny.UI.Demo this.uiButton4.Size = new System.Drawing.Size(100, 35); this.uiButton4.TabIndex = 86; this.uiButton4.Text = "选择"; + this.uiButton4.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiButton4.Click += new System.EventHandler(this.uiButton4_Click); // // uiButton2 @@ -74,6 +75,7 @@ namespace Sunny.UI.Demo this.uiButton2.Size = new System.Drawing.Size(100, 35); this.uiButton2.TabIndex = 85; this.uiButton2.Text = "全不选"; + this.uiButton2.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.uiButton2.Click += new System.EventHandler(this.uiButton2_Click); // // uiRadioButtonGroup1 @@ -99,7 +101,7 @@ namespace Sunny.UI.Demo this.uiRadioButtonGroup1.Size = new System.Drawing.Size(670, 173); this.uiRadioButtonGroup1.TabIndex = 84; this.uiRadioButtonGroup1.Text = "UIRadioButtonGroup"; - this.uiRadioButtonGroup1.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter; + this.uiRadioButtonGroup1.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; this.uiRadioButtonGroup1.ValueChanged += new Sunny.UI.UIRadioButtonGroup.OnValueChanged(this.uiRadioButtonGroup1_ValueChanged); // // uiRadioButton12 @@ -135,9 +137,10 @@ namespace Sunny.UI.Demo // this.uiLabel3.AutoSize = true; this.uiLabel3.Font = new System.Drawing.Font("宋体", 12F); + this.uiLabel3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLabel3.Location = new System.Drawing.Point(49, 254); this.uiLabel3.Name = "uiLabel3"; - this.uiLabel3.Size = new System.Drawing.Size(131, 21); + this.uiLabel3.Size = new System.Drawing.Size(119, 16); this.uiLabel3.TabIndex = 81; this.uiLabel3.Text = "GroupIndex = 3"; this.uiLabel3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; @@ -186,9 +189,10 @@ namespace Sunny.UI.Demo // this.uiLabel2.AutoSize = true; this.uiLabel2.Font = new System.Drawing.Font("宋体", 12F); + this.uiLabel2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLabel2.Location = new System.Drawing.Point(49, 213); this.uiLabel2.Name = "uiLabel2"; - this.uiLabel2.Size = new System.Drawing.Size(131, 21); + this.uiLabel2.Size = new System.Drawing.Size(119, 16); this.uiLabel2.TabIndex = 77; this.uiLabel2.Text = "GroupIndex = 2"; this.uiLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; @@ -237,9 +241,10 @@ namespace Sunny.UI.Demo // this.uiLabel1.AutoSize = true; this.uiLabel1.Font = new System.Drawing.Font("宋体", 12F); + this.uiLabel1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLabel1.Location = new System.Drawing.Point(49, 172); this.uiLabel1.Name = "uiLabel1"; - this.uiLabel1.Size = new System.Drawing.Size(131, 21); + this.uiLabel1.Size = new System.Drawing.Size(119, 16); this.uiLabel1.TabIndex = 73; this.uiLabel1.Text = "GroupIndex = 1"; this.uiLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; @@ -286,7 +291,9 @@ namespace Sunny.UI.Demo // // uiLine3 // + this.uiLine3.BackColor = System.Drawing.Color.Transparent; this.uiLine3.Font = new System.Drawing.Font("宋体", 12F); + this.uiLine3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLine3.Location = new System.Drawing.Point(30, 131); this.uiLine3.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine3.Name = "uiLine3"; @@ -323,7 +330,9 @@ namespace Sunny.UI.Demo // // uiLine2 // + this.uiLine2.BackColor = System.Drawing.Color.Transparent; this.uiLine2.Font = new System.Drawing.Font("宋体", 12F); + this.uiLine2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLine2.Location = new System.Drawing.Point(30, 55); this.uiLine2.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine2.Name = "uiLine2"; @@ -332,7 +341,7 @@ namespace Sunny.UI.Demo this.uiLine2.Text = "UIRadioButton"; this.uiLine2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // - // FRadioButton1 + // FRadioButton // this.AllowShowTitle = true; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -358,7 +367,7 @@ namespace Sunny.UI.Demo this.Controls.Add(this.uiRadioButton2); this.Controls.Add(this.uiRadioButton1); this.Controls.Add(this.uiLine2); - this.Name = "FRadioButton1"; + this.Name = "FRadioButton"; this.Padding = new System.Windows.Forms.Padding(0, 35, 0, 0); this.ShowTitle = true; this.Symbol = 61842; diff --git a/SunnyUI.Demo/Controls/FRadioButton.cs b/SunnyUI.Demo/Controls/FRadioButton.cs index 3c7df495..9f12268a 100644 --- a/SunnyUI.Demo/Controls/FRadioButton.cs +++ b/SunnyUI.Demo/Controls/FRadioButton.cs @@ -23,7 +23,7 @@ namespace Sunny.UI.Demo private void uiButton2_Click(object sender, EventArgs e) { - uiRadioButtonGroup1.SelectedNone(); + uiRadioButtonGroup1.SelectedIndex = -1; } private void uiButton4_Click(object sender, EventArgs e) diff --git a/SunnyUI.Demo/Controls/FSplitContainer.designer.cs b/SunnyUI.Demo/Controls/FSplitContainer.designer.cs index 933de590..eb3ce209 100644 --- a/SunnyUI.Demo/Controls/FSplitContainer.designer.cs +++ b/SunnyUI.Demo/Controls/FSplitContainer.designer.cs @@ -73,7 +73,6 @@ namespace Sunny.UI.Demo this.uiSplitContainer1.SplitterDistance = 266; this.uiSplitContainer1.SplitterWidth = 11; this.uiSplitContainer1.TabIndex = 0; - this.uiSplitContainer1.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0); // // uiNavMenuEx1 // @@ -107,10 +106,8 @@ namespace Sunny.UI.Demo treeNode7}); this.uiNavMenuEx1.ShowLines = false; this.uiNavMenuEx1.Size = new System.Drawing.Size(266, 415); - this.uiNavMenuEx1.Style = Sunny.UI.UIStyle.Custom; this.uiNavMenuEx1.TabIndex = 0; this.uiNavMenuEx1.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.uiNavMenuEx1.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0); this.uiNavMenuEx1.NodeRightSymbolClick += new Sunny.UI.UINavMenu.OnNodeRightSymbolClick(this.uiNavMenuEx1_NodeRightSymbolClick); // // uiSplitContainer2 @@ -134,7 +131,6 @@ namespace Sunny.UI.Demo this.uiSplitContainer2.SplitterDistance = 244; this.uiSplitContainer2.SplitterWidth = 11; this.uiSplitContainer2.TabIndex = 0; - this.uiSplitContainer2.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0); // // uiListBox1 // @@ -151,7 +147,6 @@ namespace Sunny.UI.Demo this.uiListBox1.Size = new System.Drawing.Size(523, 244); this.uiListBox1.TabIndex = 0; this.uiListBox1.Text = "uiListBox1"; - this.uiListBox1.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0); // // uiButton1 // @@ -164,7 +159,6 @@ namespace Sunny.UI.Demo this.uiButton1.TabIndex = 0; this.uiButton1.Text = "清除"; this.uiButton1.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.uiButton1.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0); this.uiButton1.Click += new System.EventHandler(this.uiButton1_Click); // // FSplitContainer diff --git a/SunnyUI.Demo/Forms/FDialogs.Designer.cs b/SunnyUI.Demo/Forms/FDialogs.Designer.cs index 578201e4..d2964bc6 100644 --- a/SunnyUI.Demo/Forms/FDialogs.Designer.cs +++ b/SunnyUI.Demo/Forms/FDialogs.Designer.cs @@ -85,7 +85,7 @@ this.btnError.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(184)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.btnError.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(184)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.btnError.Size = new System.Drawing.Size(100, 35); - this.btnError.Style = Sunny.UI.UIStyle.Red; + this.btnError.Style = Sunny.UI.UIStyle.Custom; this.btnError.StyleCustomMode = true; this.btnError.Symbol = 61532; this.btnError.TabIndex = 29; @@ -111,7 +111,7 @@ this.btnWarn.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(124)))), ((int)(((byte)(32))))); this.btnWarn.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(124)))), ((int)(((byte)(32))))); this.btnWarn.Size = new System.Drawing.Size(100, 35); - this.btnWarn.Style = Sunny.UI.UIStyle.Orange; + this.btnWarn.Style = Sunny.UI.UIStyle.Custom; this.btnWarn.StyleCustomMode = true; this.btnWarn.Symbol = 61553; this.btnWarn.TabIndex = 28; @@ -137,7 +137,7 @@ this.btnSuccess.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(152)))), ((int)(((byte)(32))))); this.btnSuccess.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(152)))), ((int)(((byte)(32))))); this.btnSuccess.Size = new System.Drawing.Size(100, 35); - this.btnSuccess.Style = Sunny.UI.UIStyle.Green; + this.btnSuccess.Style = Sunny.UI.UIStyle.Custom; this.btnSuccess.StyleCustomMode = true; this.btnSuccess.Symbol = 61528; this.btnSuccess.TabIndex = 27; @@ -154,6 +154,7 @@ this.btnAsk.Name = "btnAsk"; this.btnAsk.Padding = new System.Windows.Forms.Padding(28, 0, 0, 0); this.btnAsk.Size = new System.Drawing.Size(100, 35); + this.btnAsk.Style = Sunny.UI.UIStyle.Custom; this.btnAsk.StyleCustomMode = true; this.btnAsk.Symbol = 61529; this.btnAsk.TabIndex = 26; @@ -209,7 +210,7 @@ this.btnInfo.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(112)))), ((int)(((byte)(112)))), ((int)(((byte)(112))))); this.btnInfo.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(112)))), ((int)(((byte)(112)))), ((int)(((byte)(112))))); this.btnInfo.Size = new System.Drawing.Size(100, 35); - this.btnInfo.Style = Sunny.UI.UIStyle.Gray; + this.btnInfo.Style = Sunny.UI.UIStyle.Custom; this.btnInfo.StyleCustomMode = true; this.btnInfo.Symbol = 61530; this.btnInfo.TabIndex = 37; @@ -279,7 +280,9 @@ // // uiLine1 // + this.uiLine1.BackColor = System.Drawing.Color.Transparent; this.uiLine1.Font = new System.Drawing.Font("宋体", 12F); + this.uiLine1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLine1.Location = new System.Drawing.Point(30, 55); this.uiLine1.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine1.Name = "uiLine1"; @@ -290,7 +293,9 @@ // // uiLine2 // + this.uiLine2.BackColor = System.Drawing.Color.Transparent; this.uiLine2.Font = new System.Drawing.Font("宋体", 12F); + this.uiLine2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLine2.Location = new System.Drawing.Point(30, 134); this.uiLine2.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine2.Name = "uiLine2"; @@ -301,7 +306,9 @@ // // uiLine3 // + this.uiLine3.BackColor = System.Drawing.Color.Transparent; this.uiLine3.Font = new System.Drawing.Font("宋体", 12F); + this.uiLine3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLine3.Location = new System.Drawing.Point(30, 213); this.uiLine3.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine3.Name = "uiLine3"; @@ -312,7 +319,9 @@ // // uiLine4 // + this.uiLine4.BackColor = System.Drawing.Color.Transparent; this.uiLine4.Font = new System.Drawing.Font("宋体", 12F); + this.uiLine4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLine4.Location = new System.Drawing.Point(543, 213); this.uiLine4.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine4.Name = "uiLine4"; @@ -338,7 +347,9 @@ // // uiLine5 // + this.uiLine5.BackColor = System.Drawing.Color.Transparent; this.uiLine5.Font = new System.Drawing.Font("宋体", 12F); + this.uiLine5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLine5.Location = new System.Drawing.Point(30, 292); this.uiLine5.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine5.Name = "uiLine5"; @@ -356,6 +367,7 @@ this.uiSymbolButton2.Name = "uiSymbolButton2"; this.uiSymbolButton2.Padding = new System.Windows.Forms.Padding(28, 0, 0, 0); this.uiSymbolButton2.Size = new System.Drawing.Size(100, 35); + this.uiSymbolButton2.Style = Sunny.UI.UIStyle.Custom; this.uiSymbolButton2.StyleCustomMode = true; this.uiSymbolButton2.Symbol = 61530; this.uiSymbolButton2.TabIndex = 57; @@ -381,7 +393,7 @@ this.uiSymbolButton4.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(184)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.uiSymbolButton4.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(184)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.uiSymbolButton4.Size = new System.Drawing.Size(100, 35); - this.uiSymbolButton4.Style = Sunny.UI.UIStyle.Red; + this.uiSymbolButton4.Style = Sunny.UI.UIStyle.Custom; this.uiSymbolButton4.StyleCustomMode = true; this.uiSymbolButton4.Symbol = 61532; this.uiSymbolButton4.TabIndex = 55; @@ -407,7 +419,7 @@ this.uiSymbolButton5.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(124)))), ((int)(((byte)(32))))); this.uiSymbolButton5.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(124)))), ((int)(((byte)(32))))); this.uiSymbolButton5.Size = new System.Drawing.Size(100, 35); - this.uiSymbolButton5.Style = Sunny.UI.UIStyle.Orange; + this.uiSymbolButton5.Style = Sunny.UI.UIStyle.Custom; this.uiSymbolButton5.StyleCustomMode = true; this.uiSymbolButton5.Symbol = 61553; this.uiSymbolButton5.TabIndex = 54; @@ -433,7 +445,7 @@ this.uiSymbolButton6.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(152)))), ((int)(((byte)(32))))); this.uiSymbolButton6.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(152)))), ((int)(((byte)(32))))); this.uiSymbolButton6.Size = new System.Drawing.Size(100, 35); - this.uiSymbolButton6.Style = Sunny.UI.UIStyle.Green; + this.uiSymbolButton6.Style = Sunny.UI.UIStyle.Custom; this.uiSymbolButton6.StyleCustomMode = true; this.uiSymbolButton6.Symbol = 61528; this.uiSymbolButton6.TabIndex = 53; @@ -443,7 +455,9 @@ // // uiLine6 // + this.uiLine6.BackColor = System.Drawing.Color.Transparent; this.uiLine6.Font = new System.Drawing.Font("宋体", 12F); + this.uiLine6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLine6.Location = new System.Drawing.Point(30, 450); this.uiLine6.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine6.Name = "uiLine6"; @@ -485,7 +499,9 @@ // // uiLine7 // + this.uiLine7.BackColor = System.Drawing.Color.Transparent; this.uiLine7.Font = new System.Drawing.Font("宋体", 12F); + this.uiLine7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLine7.Location = new System.Drawing.Point(30, 371); this.uiLine7.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine7.Name = "uiLine7"; @@ -512,7 +528,7 @@ this.uiSymbolButton7.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(184)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.uiSymbolButton7.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(184)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.uiSymbolButton7.Size = new System.Drawing.Size(100, 35); - this.uiSymbolButton7.Style = Sunny.UI.UIStyle.Red; + this.uiSymbolButton7.Style = Sunny.UI.UIStyle.Custom; this.uiSymbolButton7.StyleCustomMode = true; this.uiSymbolButton7.Symbol = 61532; this.uiSymbolButton7.TabIndex = 64; @@ -538,7 +554,7 @@ this.uiSymbolButton8.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(124)))), ((int)(((byte)(32))))); this.uiSymbolButton8.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(124)))), ((int)(((byte)(32))))); this.uiSymbolButton8.Size = new System.Drawing.Size(100, 35); - this.uiSymbolButton8.Style = Sunny.UI.UIStyle.Orange; + this.uiSymbolButton8.Style = Sunny.UI.UIStyle.Custom; this.uiSymbolButton8.StyleCustomMode = true; this.uiSymbolButton8.Symbol = 61553; this.uiSymbolButton8.TabIndex = 63; @@ -564,7 +580,7 @@ this.uiSymbolButton9.RectPressColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(152)))), ((int)(((byte)(32))))); this.uiSymbolButton9.RectSelectedColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(152)))), ((int)(((byte)(32))))); this.uiSymbolButton9.Size = new System.Drawing.Size(100, 35); - this.uiSymbolButton9.Style = Sunny.UI.UIStyle.Green; + this.uiSymbolButton9.Style = Sunny.UI.UIStyle.Custom; this.uiSymbolButton9.StyleCustomMode = true; this.uiSymbolButton9.Symbol = 61528; this.uiSymbolButton9.TabIndex = 62; @@ -574,7 +590,9 @@ // // uiLine8 // + this.uiLine8.BackColor = System.Drawing.Color.Transparent; this.uiLine8.Font = new System.Drawing.Font("宋体", 12F); + this.uiLine8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLine8.Location = new System.Drawing.Point(372, 371); this.uiLine8.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine8.Name = "uiLine8"; @@ -630,7 +648,9 @@ // // uiLine9 // + this.uiLine9.BackColor = System.Drawing.Color.Transparent; this.uiLine9.Font = new System.Drawing.Font("宋体", 12F); + this.uiLine9.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLine9.Location = new System.Drawing.Point(201, 213); this.uiLine9.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine9.Name = "uiLine9"; @@ -641,7 +661,9 @@ // // uiLine10 // + this.uiLine10.BackColor = System.Drawing.Color.Transparent; this.uiLine10.Font = new System.Drawing.Font("宋体", 12F); + this.uiLine10.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLine10.Location = new System.Drawing.Point(372, 450); this.uiLine10.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine10.Name = "uiLine10"; @@ -667,7 +689,9 @@ // // uiLine11 // + this.uiLine11.BackColor = System.Drawing.Color.Transparent; this.uiLine11.Font = new System.Drawing.Font("宋体", 12F); + this.uiLine11.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); this.uiLine11.Location = new System.Drawing.Point(372, 213); this.uiLine11.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine11.Name = "uiLine11"; diff --git a/SunnyUI.Demo/Industrial/FMeter.Designer.cs b/SunnyUI.Demo/Industrial/FMeter.Designer.cs index 5ffc25b4..b5c34bf2 100644 --- a/SunnyUI.Demo/Industrial/FMeter.Designer.cs +++ b/SunnyUI.Demo/Industrial/FMeter.Designer.cs @@ -30,74 +30,40 @@ namespace Sunny.UI.Demo private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FMeter)); - this.uiPanel1 = new Sunny.UI.UIPanel(); this.uiAnalogMeter1 = new Sunny.UI.UIAnalogMeter(); this.uiLine9 = new Sunny.UI.UILine(); this.uiRoundMeter2 = new Sunny.UI.UIRoundMeter(); this.uiLine6 = new Sunny.UI.UILine(); this.uiRoundMeter1 = new Sunny.UI.UIRoundMeter(); - this.uiLine1 = new Sunny.UI.UILine(); - this.uiKnob2 = new Sunny.UI.UIKnob(); - this.uiKnob3 = new Sunny.UI.UIKnob(); - this.uiKnob4 = new Sunny.UI.UIKnob(); - this.uiKnob1 = new Sunny.UI.UIKnob(); - this.uiPanel1.SuspendLayout(); this.SuspendLayout(); // - // uiPanel1 - // - this.uiPanel1.Controls.Add(this.uiAnalogMeter1); - this.uiPanel1.Controls.Add(this.uiLine9); - this.uiPanel1.Controls.Add(this.uiRoundMeter2); - this.uiPanel1.Controls.Add(this.uiLine6); - this.uiPanel1.Controls.Add(this.uiRoundMeter1); - this.uiPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.uiPanel1.FillColor2 = System.Drawing.Color.CornflowerBlue; - this.uiPanel1.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.uiPanel1.Location = new System.Drawing.Point(0, 35); - this.uiPanel1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.uiPanel1.MinimumSize = new System.Drawing.Size(1, 1); - this.uiPanel1.Name = "uiPanel1"; - this.uiPanel1.RadiusSides = Sunny.UI.UICornerRadiusSides.None; - this.uiPanel1.RectSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.None; - this.uiPanel1.Size = new System.Drawing.Size(800, 504); - this.uiPanel1.Style = Sunny.UI.UIStyle.Custom; - this.uiPanel1.StyleCustomMode = true; - this.uiPanel1.TabIndex = 69; - this.uiPanel1.Text = null; - this.uiPanel1.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter; - this.uiPanel1.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0); - // // uiAnalogMeter1 // this.uiAnalogMeter1.BackColor = System.Drawing.Color.Transparent; this.uiAnalogMeter1.Font = new System.Drawing.Font("宋体", 12F); - this.uiAnalogMeter1.Location = new System.Drawing.Point(381, 61); + this.uiAnalogMeter1.Location = new System.Drawing.Point(381, 96); this.uiAnalogMeter1.MaxValue = 100D; this.uiAnalogMeter1.MinimumSize = new System.Drawing.Size(1, 1); this.uiAnalogMeter1.MinValue = 0D; this.uiAnalogMeter1.Name = "uiAnalogMeter1"; this.uiAnalogMeter1.Renderer = null; this.uiAnalogMeter1.Size = new System.Drawing.Size(140, 140); - this.uiAnalogMeter1.Style = Sunny.UI.UIStyle.Custom; this.uiAnalogMeter1.TabIndex = 73; this.uiAnalogMeter1.Text = "uiAnalogMeter1"; this.uiAnalogMeter1.Value = 0D; - this.uiAnalogMeter1.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0); // // uiLine9 // this.uiLine9.BackColor = System.Drawing.Color.Transparent; this.uiLine9.Font = new System.Drawing.Font("宋体", 12F); - this.uiLine9.Location = new System.Drawing.Point(381, 20); + this.uiLine9.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); + this.uiLine9.Location = new System.Drawing.Point(381, 55); this.uiLine9.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine9.Name = "uiLine9"; this.uiLine9.Size = new System.Drawing.Size(319, 20); - this.uiLine9.Style = Sunny.UI.UIStyle.Custom; this.uiLine9.TabIndex = 72; this.uiLine9.Text = "UIAnalogMeter"; this.uiLine9.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.uiLine9.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0); // // uiRoundMeter2 // @@ -106,29 +72,26 @@ namespace Sunny.UI.Demo this.uiRoundMeter2.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("uiRoundMeter2.BackgroundImage"))); this.uiRoundMeter2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; this.uiRoundMeter2.Font = new System.Drawing.Font("宋体", 12F); - this.uiRoundMeter2.Location = new System.Drawing.Point(186, 56); + this.uiRoundMeter2.Location = new System.Drawing.Point(186, 91); this.uiRoundMeter2.MeterType = Sunny.UI.UIRoundMeter.TMeterType.Wind; this.uiRoundMeter2.MinimumSize = new System.Drawing.Size(1, 1); this.uiRoundMeter2.Name = "uiRoundMeter2"; this.uiRoundMeter2.Size = new System.Drawing.Size(140, 140); - this.uiRoundMeter2.Style = Sunny.UI.UIStyle.Custom; this.uiRoundMeter2.TabIndex = 71; this.uiRoundMeter2.Text = "uiRoundMeter2"; - this.uiRoundMeter2.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0); // // uiLine6 // this.uiLine6.BackColor = System.Drawing.Color.Transparent; this.uiLine6.Font = new System.Drawing.Font("宋体", 12F); - this.uiLine6.Location = new System.Drawing.Point(30, 20); + this.uiLine6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); + this.uiLine6.Location = new System.Drawing.Point(30, 55); this.uiLine6.MinimumSize = new System.Drawing.Size(16, 16); this.uiLine6.Name = "uiLine6"; this.uiLine6.Size = new System.Drawing.Size(319, 20); - this.uiLine6.Style = Sunny.UI.UIStyle.Custom; this.uiLine6.TabIndex = 70; this.uiLine6.Text = "UIRoundMeter"; this.uiLine6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.uiLine6.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0); // // uiRoundMeter1 // @@ -137,162 +100,37 @@ namespace Sunny.UI.Demo this.uiRoundMeter1.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("uiRoundMeter1.BackgroundImage"))); this.uiRoundMeter1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; this.uiRoundMeter1.Font = new System.Drawing.Font("宋体", 12F); - this.uiRoundMeter1.Location = new System.Drawing.Point(30, 56); + this.uiRoundMeter1.Location = new System.Drawing.Point(30, 91); this.uiRoundMeter1.MinimumSize = new System.Drawing.Size(1, 1); this.uiRoundMeter1.Name = "uiRoundMeter1"; this.uiRoundMeter1.Size = new System.Drawing.Size(140, 140); - this.uiRoundMeter1.Style = Sunny.UI.UIStyle.Custom; this.uiRoundMeter1.TabIndex = 69; this.uiRoundMeter1.Text = "uiRoundMeter1"; - this.uiRoundMeter1.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0); - // - // uiLine1 - // - this.uiLine1.BackColor = System.Drawing.Color.Transparent; - this.uiLine1.Font = new System.Drawing.Font("宋体", 12F); - this.uiLine1.Location = new System.Drawing.Point(30, 276); - this.uiLine1.MinimumSize = new System.Drawing.Size(16, 16); - this.uiLine1.Name = "uiLine1"; - this.uiLine1.Size = new System.Drawing.Size(319, 20); - this.uiLine1.TabIndex = 71; - this.uiLine1.Text = "UIKnob"; - this.uiLine1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.uiLine1.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0); - // - // uiKnob2 - // - this.uiKnob2.EndAngle = 440F; - this.uiKnob2.ImeMode = System.Windows.Forms.ImeMode.On; - this.uiKnob2.KnobBackColor = System.Drawing.Color.Black; - this.uiKnob2.KnobPointerStyle = Sunny.UI.UIKnob.KnobPointerStyles.line; - this.uiKnob2.LargeChange = 5; - this.uiKnob2.Location = new System.Drawing.Point(208, 326); - this.uiKnob2.Maximum = 100; - this.uiKnob2.Minimum = -100; - this.uiKnob2.Name = "uiKnob2"; - this.uiKnob2.PointerColor = System.Drawing.Color.SlateBlue; - this.uiKnob2.ScaleColor = System.Drawing.Color.Black; - this.uiKnob2.ScaleDivisions = 21; - this.uiKnob2.ScaleFont = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.uiKnob2.ScaleSubDivisions = 4; - this.uiKnob2.ShowLargeScale = true; - this.uiKnob2.ShowSmallScale = false; - this.uiKnob2.Size = new System.Drawing.Size(150, 150); - this.uiKnob2.SmallChange = 1; - this.uiKnob2.StartAngle = 100F; - this.uiKnob2.TabIndex = 1; - this.uiKnob2.Value = -30; - this.uiKnob2.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0); - // - // uiKnob3 - // - this.uiKnob3.EndAngle = 405F; - this.uiKnob3.ImeMode = System.Windows.Forms.ImeMode.On; - this.uiKnob3.KnobBackColor = System.Drawing.Color.White; - this.uiKnob3.KnobPointerStyle = Sunny.UI.UIKnob.KnobPointerStyles.line; - this.uiKnob3.LargeChange = 5; - this.uiKnob3.Location = new System.Drawing.Point(386, 326); - this.uiKnob3.Maximum = 100; - this.uiKnob3.Minimum = 0; - this.uiKnob3.Name = "uiKnob3"; - this.uiKnob3.PointerColor = System.Drawing.Color.SlateBlue; - this.uiKnob3.ScaleColor = System.Drawing.Color.Black; - this.uiKnob3.ScaleDivisions = 11; - this.uiKnob3.ScaleFont = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.uiKnob3.ScaleFontAutoSize = false; - this.uiKnob3.ScaleSubDivisions = 1; - this.uiKnob3.ShowLargeScale = true; - this.uiKnob3.ShowSmallScale = true; - this.uiKnob3.Size = new System.Drawing.Size(150, 150); - this.uiKnob3.SmallChange = 2; - this.uiKnob3.StartAngle = 135F; - this.uiKnob3.TabIndex = 2; - this.uiKnob3.Value = 0; - this.uiKnob3.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0); - // - // uiKnob4 - // - this.uiKnob4.DrawDivInside = true; - this.uiKnob4.EndAngle = 360F; - this.uiKnob4.ImeMode = System.Windows.Forms.ImeMode.On; - this.uiKnob4.KnobBackColor = System.Drawing.Color.Gray; - this.uiKnob4.KnobPointerStyle = Sunny.UI.UIKnob.KnobPointerStyles.circle; - this.uiKnob4.LargeChange = 5; - this.uiKnob4.Location = new System.Drawing.Point(564, 326); - this.uiKnob4.Maximum = 10; - this.uiKnob4.Minimum = 0; - this.uiKnob4.Name = "uiKnob4"; - this.uiKnob4.PointerColor = System.Drawing.Color.White; - this.uiKnob4.ScaleColor = System.Drawing.Color.Black; - this.uiKnob4.ScaleDivisions = 11; - this.uiKnob4.ScaleFont = new System.Drawing.Font("Bauhaus 93", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.uiKnob4.ScaleFontAutoSize = false; - this.uiKnob4.ScaleSubDivisions = 4; - this.uiKnob4.ShowLargeScale = true; - this.uiKnob4.ShowSmallScale = false; - this.uiKnob4.Size = new System.Drawing.Size(150, 150); - this.uiKnob4.SmallChange = 1; - this.uiKnob4.StartAngle = 180F; - this.uiKnob4.TabIndex = 3; - this.uiKnob4.Value = 3; - this.uiKnob4.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0); - // - // uiKnob1 - // - this.uiKnob1.EndAngle = 405F; - this.uiKnob1.KnobBackColor = System.Drawing.Color.White; - this.uiKnob1.KnobPointerStyle = Sunny.UI.UIKnob.KnobPointerStyles.circle; - this.uiKnob1.LargeChange = 5; - this.uiKnob1.Location = new System.Drawing.Point(30, 326); - this.uiKnob1.Maximum = 100; - this.uiKnob1.Minimum = 0; - this.uiKnob1.Name = "uiKnob1"; - this.uiKnob1.PointerColor = System.Drawing.Color.SlateBlue; - this.uiKnob1.ScaleColor = System.Drawing.Color.Black; - this.uiKnob1.ScaleDivisions = 11; - this.uiKnob1.ScaleFont = new System.Drawing.Font("宋体", 9F); - this.uiKnob1.ScaleSubDivisions = 4; - this.uiKnob1.ShowLargeScale = true; - this.uiKnob1.ShowSmallScale = false; - this.uiKnob1.Size = new System.Drawing.Size(150, 150); - this.uiKnob1.SmallChange = 1; - this.uiKnob1.StartAngle = 135F; - this.uiKnob1.TabIndex = 72; - this.uiKnob1.Value = 0; - this.uiKnob1.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0); // // FMeter // this.AllowShowTitle = true; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.ClientSize = new System.Drawing.Size(800, 539); - this.Controls.Add(this.uiKnob1); - this.Controls.Add(this.uiKnob4); - this.Controls.Add(this.uiKnob3); - this.Controls.Add(this.uiKnob2); - this.Controls.Add(this.uiLine1); - this.Controls.Add(this.uiPanel1); + this.Controls.Add(this.uiAnalogMeter1); + this.Controls.Add(this.uiLine9); + this.Controls.Add(this.uiLine6); + this.Controls.Add(this.uiRoundMeter2); + this.Controls.Add(this.uiRoundMeter1); this.Name = "FMeter"; this.Padding = new System.Windows.Forms.Padding(0, 35, 0, 0); this.ShowTitle = true; this.Symbol = 61668; this.Text = "Meter"; - this.uiPanel1.ResumeLayout(false); this.ResumeLayout(false); } #endregion - private UIPanel uiPanel1; private UIAnalogMeter uiAnalogMeter1; private UILine uiLine9; private UIRoundMeter uiRoundMeter2; private UILine uiLine6; private UIRoundMeter uiRoundMeter1; - private UILine uiLine1; - private UIKnob uiKnob2; - private UIKnob uiKnob3; - private UIKnob uiKnob4; - private UIKnob uiKnob1; } } \ No newline at end of file diff --git a/SunnyUI.Demo/Industrial/FMeter.resx b/SunnyUI.Demo/Industrial/FMeter.resx index ac0c0d44..b07eed8d 100644 --- a/SunnyUI.Demo/Industrial/FMeter.resx +++ b/SunnyUI.Demo/Industrial/FMeter.resx @@ -317,265 +317,265 @@ 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 - b0BOOeX/AwoIhqoMLNEoAAAAAElFTkSuQmCC + 6fgJFsQQmc9rbgQ4HJSSEjyNwHFFEEaVg0MuZSKvYd4HIGhXDk0OzNTqC/QacPSzJTAlcV4uOLpNfKuB + TYoy+D5h0KxAmMbpTNIRXW67+nZIpDtSdElwlCoCKBQHBjkslAiMRxNPjBkNeNGTGuw9P1cFi/1kdhnn + E10EguUHjIKkEjBRywEeg4YLi1EcCajbow4YhN2I1JRxRBjsSB5KXchl8LGijPkc37eKMozJRZplzzzk + Zt97V36fsEq/x4nyk0eVgPHuiBKB4bkoFH7ymjDtRf28g+Kw2GuuNvIdjdQABFiiHJxB8AwDDipBMIzM + npybKInTNMnYBxg+42XkCMN57KfsaYk4D3PEx/jaR0yN52Wqm+bJmme+cyFrD9wwpY3c6UR1ogIlYBCJ + GSUCQ+5BYWSj9+z4FIaSmjGNsNhPukOii57mZEanTlIOTQSnBEtUAGfR4SHa2HG00m+/CxqzQwkYxEw4 + JQeGLh275mJyNH6/UgITm7LRjYtv/9veegRf6wlY5DJNb/LnwcNHuFXEQhNjdDYUU3HmN0qhLRfdCpX1 + yabqfQu9vE9i6+/hIAo//T3yGuCqokvIWbgamL0FGJxNWEdjAQcNCw4qAdFU9n1BQ6QxR9L1YyuiqdvF + 7cX7PiDADryukwPT47cEjP/OPBG9B77WvIz5HgZgIWFRLvFGNHacH77/tg9rH4UZk+nuJsCMQzksRBbN + mtoQswLGIHBgxg4OGhYcVIJikOx7jKB0oblD3akjqhYYE3bmcbKcF1/jc3wPAwNvhNMygPVhHl14tqzW + YqxBvqjWdeIFkmAxMXTm/FwBzLcIliScSbeXQ9MYnCbwJGgWBR7rkjgH0KgrMmdic61WozHBIwVgeE3y + y0Tq5Nvf0cHnHmVgoe9yQdUdMbx69GtrD2y88CHIw2FaZCwAM26IPLpwPsDAeES3CAsiaRQwrrbgoDZR + ZzHgoU1bPqEJSIa8Dk0FTsFeQykCY8LmdElEcXyO72Ggb7fE8jazfJ7ssnF479lnH8I4/pTs4smHVB18 + ii7WDWEkpvvpxwFEEYYuKXVLgNwFzDjAWUx4UAmaq+ZnhcljaGcXNDg4s9lQCrAg7E4CTZ6Kz/G9J78w + ARsJk1cK/2EjdkcHb938O1Cu7D0dtHjyMSnCwk+IBxhAyQU0/I2rUWoLzriiDsrgGQtABg1LHQwUtLCa + Nn8tZNfE8YnmgIPvY7cEGwmTVwp3xRGCWO7WDWmWMTM+xzF0D8UTjlEOCucCCvWpPN8fSKwRUoCGURNX + YQVNCZwCNGhBwHGNCRzqwGiIOScHRtAUbDeSEjDYny7JR0t+AxxM9NwxyZ5OpoPVHU3vWsP/AyI0UXGu + 5sWMLhiHxU32BgsO6w4lhyaBQ16DUXugGTc8Dk5beAI4QwFkUUbrTlZHbQX1CFOw38gCGvuJTblQ2SsD + A76KDRtd+37po6r9unMPXsC/bTnwprdoQqfn4AsgweLRhSGehWJBYr9XwBTA4XMsDwiaEjg5NH3AQY2j + Tlt40DDw2AXLJB7RdEGBQQYN20TIDfe//vQODPhSAWx05TH672aMjshh9t632vMXhrSLFV2ARf2oEa5s + HSj41zQ21KvAyQBi9CZgPvXJbnByeErgoAI0aCA4JZUgqVMGTy1Alj+yuMpCpZ5ZnCLBQgjb4wvsj+1h + QP+qx5iAja48hoUmQo/ylx/+7qYD71v9P8mYmSArHXxYleCL3REr2xgJGPhdwNhPoKnAcfGZd/2GDMuG + KQHjAqBSxIkqAYQKAKEiJHUqQdJPQBNe06YIke4ovejCHtuNUw4MqYAuWGMAFnwLZ7UYSd/EjJ5CT8pf + WFegwsrQCwdH7vwSBLnqPhNhIdxCN/mLQLGEtxLQlMAxaMjse4CJ4KASMFEtwEFFSOoUQBhGdEtEGLZE + lGzYT01845KvLYLRs9AtdeUxsOFPsmLq197Q3YxabPz9rbeQv2CYJiFwUKUqKPiZi/cTMMw5YCABYslX + pQI4FTAmRhHArVtFBoFT12VFtYQHVV3YoG4s5kBN8yCij4mdiL44WbJx6f2m0vc5tvlbk6If+tB8HmMs + aD6G3NYY0TJBAmZ+vM2E3de33urAtK2Ig9DzvoNREtHFPqPhnCXZgiICMwAcIo7mZAADYKJycFBTeErg + oAyWXI3hQQ0BoltiXob25rYdlyp/mP8YoQEMLAiYND8nYMh+NXRiOcDG3iQ7bCEgFHKA0sHbSBB5ZUoy + YOg/yV0EjeUl2gnGzwbgCJo0wUjobgQNcnAiPCVwUAkcVADG1QVOE3hQH3ioJyvaJRuPQ+4Lni9Dl8SF + CAswoV2XxohGSum+I/0bXyW8rB9ZwsuXOEjp4G3VFxq6o7PeIqMIAmBxAU0DcNQ1WVKIYxhV9EDjKoGD + xgEPKoDjag1QhAfRLVnyy0WS2za+HlbuD4AhYmsejHUlT3yNES1EsrjEC56FxjNE9F8zLLrwBQ5QOnhb + 1QKTuiOycuZUquiSy8Gpgyd1Y0qAzdlVPlOnEjSupuCgEjSuAjRRrQGyC4qZX+zkNo0/R5X7RM+VsUhP + 0IAFmKgeGM1CpI+QeJP/9k52TAVJJt2h41AXKC6Ob8kWgDKnUoQlVx04KTphUG2yHgSNqwQNahN1UAka + VwGYXAPhsSijORlrV2U/LsQFAAZ7ksfAAkw4MLByih7hYUmNIgxD6jed+RJGYvJmnGtIVSOjDBiGcxgB + Z5M7Aar27EZISiqBY5FG+ZdPeDWFxlUCB5XgGRagAiy5uuCJANnvzPxykXXZcQRoHDo/Fj7XSMkuYpYk + ph/4jzdoaM0EHo86M3JWaYRkb/LHA6e/WYbmw3x53ATnYl0IIwGBgHE1gQbl4FikYYZaQ23mL4YBB5XA + QRGeCFAJGlcJHFcGS0kRHvY/czFzsXXZclRo0nHwORuqiGgaKQVgYOUU3axWAIaRSz9gSFQp3CvDa0IY + RfMF9prbaSmQyuuuxrns2PSXfFeRxRwtBWhag4OINKsv6IHGVQSkTiVoXHXw9AOoBE1UAZgo8pjqztPM + lu4bjtOvaEdf+qx8E4BRmrBihSJaDgysnOLPCXFg+BCG9i/XAYO4T4bNxvzObaAUB6i6JzhtZK4qFGXH + ZnaXEZkAcWBGAQcBTSnSZOCMFR5UgqcETVQOTFQJmM/dqgusCTDcvtNzTFO+5JMDw0/slgMDK6doyJSA + ObRz200CxjJyRZf05XjwKHb4c+M8v/szXXgSA6/9Lj2ersDrqkJBvM+sIsT3wOJyaIYBB2gMWKKcAIng + LAU8YwBIu/HsmE2A4ae/1085MPgeBmABJipgjJUeYOiSCEcRmFiZKB5D4Q8B4kZ64PHbXok8/juqKhTE + +1SMIbzgMOdKOTSoAE4jeCyv4fvMIuPoHmjGAQ8qQeOK8PA6AtQPoghLEnUjmi8oMDZSIoeBhWbAWHLF + BE6pMlHcaE8hinCTlUcZRj7A8+Kjj1afrY4VxNoF5/L7YiSA8Z918LgK4BQhAhoDjbkFHMGMaREa1yjg + oByYfsoj0CCA7PjkMQsGjIl/wk7QaAZMWkfiS/EgJWg8scVJRBpykfiax3z4Z7uOlcT7dEnkHMChm9Ui + OIOAIdr47wmcIjCIvMZ+AifGUKSpizauAM7Q8KASKC6POvF1P3jsM4yU6oDhpwNTymF8EBJVAgYGYKEZ + MFaxJsBwcopXkJET3ZC/5rFk/tmuYyURYYCMv+uWTXMq0FTgAIwDBBRNIAKa1HUBSA9AwHlRenqmOZNb + Oip4WgIU1QNJE0VQSvJuzAVA9j5LBE0iTKl4zhlVBMYYaA6MVa4HGJRBg2MpkOy5DE9i8JvsMaR/tudY + Jt4HGOVLvLbhHJNGigQRnCiHZhA4KAOnggdo7O9aSrArCVDUTUVwFgMeoMhfNxCTdwvdJcFAc2Cs8l1P + 9XZlwJC7UIgqPG6M97hR/OWZGb3v0SOvkIu/MazW3zlXOt9YwUnQSAmaGHVYx6qijSWTPdC4StCUNCw8 + uQqgII7Zr0tCIwFjx8X31KExMFSqa5QUlUHDkxYo/n+eaYwXX1ntCwyTSNY1VefiZ/pd4JxxxnyE4MkN + KAdnBHgcGv7GZBj7ToCjLzioBEpJARxXDxhtBDB2fnLHHt+MExjzPXUtA5NN3Gmm1yqlg+SVcoXK+WM8 + /KkMTPh48R17/YBhKR0wes7F6/Qex2GpgtGOok0TcFrAU4Fj3wFghvrYgPxGT7lyUOpUgqWkDB5UBKOP + VCfrPnvsNUZgeE27AKZn4q60NECFGBp7btGjUDl/pi6G5TUOpdAtFSuUHYcuga6txwBRDo4di1sh2Msr + p9eBg5pA48qiDt+nq9QKsRnOwRkrPGgIgIh+5F1NgCES6e6LTFx8/lkU/YPP8T0MwEIERksDpcVHKuX/ + Ua2rUlGpgr4EUI12rDIUXzLIK5QfA0cxuuoLjMs/Y9+jUXxPDm4CTht4yHP4ad8XOB5xzIgOztjhQQ3g + YWmAScjcXm5r5MDUlfyJVTkw+B4G8gijxcfS9gY+TP6hxDdUqksJGPp+svZILa9Z7yhVKJe2WNqopS+c + fcTxq6iTnFyrNvBwLJe9puuMSwwRnAUBKIMHCRiLGjxNswuY5AsXeR9da52wd/x8tCc+xycwAAtdEYbt + DfkGKm4x4Uqia+ma7S0onrSf+gHDo9UxwLDARLFPhOP5wqPAAJQ8AkVwmsCDAMciDxeI7ri0qxgIBEsW + ecYOD0rQaDP4W8/qAqZk8zaKNsTn+J42wULPBqp8iyZPISIbJxQX52KCSicvqRYYazQJr4bWWYgdWuk4 + bM/QZGAJngjQMPDQZdkxqDdRhysfCCp42nZdqARJQQCjUaW3N4suw6g6lgmf0y4Y0BOp8i2apU3gGAE9 + /vM/13WwHjWsbF9grPFEmLpH0Q8tjpWOp+G5waO7JdMwWnA4PHUA5aDkSl0W9SeHI9cRPOZYwZJGNK0B + yiBxKeG1yFa1cRywZL7B5/L/Ndd03/1ojGgT+O7CbSaH1q5X+BsUYUYGBtnffLfcOLqloiI8DNEt59HE + IDO+RIscHhTBGQRP6q4qeDZdLoMzW6quxCAQPMMChAwYbZ6yXKpq10IAwyyvQT+9boMeXxZvM9G/+yvd + yIYhNTnEwfpd9Q0qXFWIn67sOHQdbHFYMGCiEjyci/ox2iJh93u1I0A9cz5NADJoFMXsJ1MG6raYSbah + sAMkYCxatAWIwYRGlKktua3bqscf2MZe43tsUbyRLQHTdassNzFp76glV01GSv3klep5z49hlSTfIJks + TuAtpAI8/CT6aLhO93X22TJa1YVFgHKIcmhcKfLoGPY52ugAsa1Di4l2NQsUAHKIHKQAD07kfdmPujew + fRNFX2iEZD7H97qjtHirbOFmfB4mRHKlq77fSKlPpQc1iL9Xx7bfSU5xUF9AF1olgEieUxemKQD21hCF + DJYugByiOoACPALIPot9AYhRF3kD2y6AqOrGDCDmXYDnqd/9rwKOenp0zO2Zv9dEsf34gzrhexgo3oxP + KT3ugyyZ2zX6Jb6lCrQRV7M7iW6B/nlRuqUmSvVCDpCckqJQBRFdGTlYiiJARFfUA1EOUg4QXZh9VxBt + mH+QNpGIXIgZZ5zIjDgXVMmWw4j2xDYr4TWfA23XXY+wEf/3QOmBQoc3bBLligIYKxzYVapEW7lTmEPB + uHQHywaaXKmuqAciIpGN9MjHCOtFkPKI1A8iz6fsPeBh45fsVLAhGjnC0CbzNT7H930fKMRIKX9kGQ1Q + knXGGbUOLFWgrarjWYVJ6DDqsgUmF8CUZH9T+xJIXREJmFLXJpgAxeCpYCIiuRJIdFkcI7fdqIoRBpvj + a3zOOfs+soy+KT4U8eDdWz82sXLlfnZ20U3UDa9LlWirqtJmaIyLoeiejhloSsoBctnf1G4DSbIkv4pM + 1mYcxkWjRUKgOtcST+uiACm3W65RIww+xtfazWe+hwHlL0y55A9FpHQ9dvXRr+mxqwwD6UPr8phSBdoq + pxxjAc0xDUydShC5/DOZ43GiJjUHADEyMOQvae5IvjcGYAEmeh67SqGP8vG2P9iZvkwZs4XDkgNLFWir + CAyGU5SxkEj4Pi6h6acAkIa4DO2t6yrZbVzivNgZH+Nrz18GPtiZPip/dPzB1asPs32BkFgaXpcq0FZd + wJioPLAADWG76+o7UWRt1iDAkmJ1XQW7RQ0bXRDnw7f4GF/j80aPjqewuKTREssE6Z9TMAfAHIHmR3Ln + jVBRVw6Mn0MjBevDT0RguGgYIfVLdMdhe4R98S0+xtcaTjf55xQUX4j0bmnyhsvvZLMON9gXh7sLAQwK + V1i/UdrxKNrqSW/JXqMo9xevFdHNt/hYzxg0n1fdkUkLjnWFqV9m9CDL/8HW5MUX/Fihat0lxW6pLTQC + JKl6nR/TREMYOdA1caWdEJHG2sjkHBcKuVxuu3EL2+NTfIuP8XWrf7BFqbqlFGUOfPDiXUdvvEkTOrU5 + RQCgreqAQUBDt0T3pM8ez9AQVc2+SvjTltXcVqMq95Fe2zm1DGE+xtceXQZ2R15K/yR0euP7n3z67m8o + Y69d68mhWbFCezeYCKr+K0eoLH/zfcBEEFZzmXPgWEQWXvMdDKdFwHeeO3+O4xEah8Xaywyxt5FuuZ8N + ZTf7e538Np86cQ58im/x8VD/JJRS+jfEVLrruTHeWFeAhT7Y/4l5LKy++me4n4lbVPidWU6K39vkt6pA + vp+PK0/GTK+7zn0si7aY7XRRcEGSr9l7XCDc1hoLz+Nhjc9tiJ37FaDhc10XcpIuPjs/tsa3Q/8bYgoL + TbpficRn7sELprZdddvkpo3PsNu8LgmNleEfmNM4Mm9dOdYn03hup+X7fAZY/HEgDogDxFI+pbpzMgGi + K9CSweMm0lgbaJ/DojaldmEL7EUiig3ZmIW9uNDIc/ieA8OtPkqUM9WNstx+rHvhU3yLj30pAN93LTY2 + KUwHK8qw22rPvav4d/vcrAYE3tjYeK+M3z7r0cIF7RSW7nnt/y0fYxBuKRiDv/mtKxiS1xEQDbcx7jEO + DRedd0M5LHTJlPz/TrPdgaIL0V4DBSW/baROshlKdeA4+BTf4mNNp+Bz833CoHk5+tg9r9VNbqwlGHkH + b792274NG56jESyk1QFDBKH4k6hcgMSyPY3ktUPBa27e5yZ+Csbyp1eRB/HZqpHJqL6SyxVUinbLXdQZ + G9LNkmd4N+R/J+mlxHu7ELbFhh6lmwATAalk5+L88qX5FN8qupC7mM/xfcKgXWGWz6PM7NSud/OgXxIk + 3XmXTuyViJWkoRQqVJd4kc9Q2BREF+b3ZBN6+X7tnZMJGvIZjSh8CSHUZdnK6khdWbHWHJOB0VN3aytt + 5mFMFC4ev8hyDQVMOhc+xJf4FN96dMHnyf3tC/2Ytj0wYpretebQVz69Zd/Fa5977nt/IEeVGoq4Aogw + XnicGSDEhrBkTyEskt+Qx5Ao66e9JuL4Z0uNjlepRg8W3mtHcEst6mt1I2J6fVlQFCzxczU2JB+kC9dS + Qfo7cmDIbbjIcvGZruMjqwu5Cz7El/jUV6XxdevcJS+zEzvOUpSx7Jkx+r73vP1bM7d+/iW2DHY1ODTW + xd2P3tVQ/JGsiG6F4gkuIyWemUekIdnzp3GiHmBc1ngmuBhR8H3tQbY69ThiCaW6WD2JtKzXaAbX4Oa9 + rs8W7MfnuIAiOOR7/vdhgKE+POgJH+JLzbukkRG+Tm4fvqTlglUQqO16j2xfxyPFca5ueQgNrxqaiX2r + /swYT3q52ih+Mz85Ds/M89cM9fz7tcCgdH6fFSaS8bs7qufziyQH1++IIFmnjfp7qV4lYIKwIWBQgIj3 + +nVJslluNzsvPsN3+BBf+hZMfNx3GaBNYUwOhYjwpWG2DfdwrhwTGp0nZi7CMFeIP3gIaZho0YSfvCba + 8JricwiurobnwgEmrkjOS7TBSQ7OosFj5/Bz0WWTnxFVgEZtSPUsfjcAAwjY0IfPLp+v8ugxKIfJgaFu + +Azf4UN1RcmvreZdBhWWt2d37zhPJCp87Vi779wzHyZpwskxd/Dhc+5wRG6C/LV3V/60TX+aOEW3naTP + oZ6rpaTkEMDBSTgLw2tpwSJa5bA6pw2jcEzt5bELg3OSbwBs1f3UnTOA4vJphvhAAxdTD37RtQEGH+Er + fIbv/LlA6jnMt7VbGIYtDLWqfb+WUc/88K7fOnDO255W12TdgEcaFrIokBwr7zlLnJ/x4bPPN2BsL4wg + /HOuRtCg5By+w9CbERWhGAiZ89C0gH+uzpH95N+z+gAFQOr4JpzoC4fVZ/PvuwqwICYsKTGPQx5h/P2m + wOAbfISv8Bm+S/Nr2q879DC6X2FPpx4NkqIMJ5xfZ7pMGTeOceMwTKYwOmIqmyuGHIYuKY6WSIIpngxz + DAqf88/kagwNcsfa73yXEE/yqf/PlHbi42zgxPGMXHx21M/D77zH33SDG0Nibgmx7+oYJNsGpNrvdQvn + rRWfNXm7cnn05cIjWjMYUBduEUajQvuMA8OsMDlfLib6qAd1w0f4Cp8JlhRd8GnPft1xFe6tVQJMlOGE + 9nPv5vXbuSPvmQcemN/+YBUk/JPA0jgvZPqE6miUUveFUXhIdPxcrlbQ1MmOAUA+nwNEQECU4Apn2C/Z + 77zH34ADWIBG+2xLx82VwHA44u/9RN2IHF02NIjiBefA1BW6f7oijgM8k1et/0b0Hb7U/dILWfKu6cgj + X93IYyGoFFeB7jDwq8sMo+TX+vFoDBdGyZM7OSWbbyhJhs+dM4w8GrRV6Vi5GoDRROqeCzbse3xyJ/s7 + 0R3f4CN8teBdUanEURPDMp4hMrFy5VOEPa7ICE2xMctEgm5c4EUFR/Z16gjqqrv/HkRk8XQB3+AjDaGT + 38Y6KmpSfM+MoLGMm43D7KkgqSXBre5lssqXGrzclBu8C4A2WoT2Dqojtie5xxf4BN/EUZEePbbYhc01 + 9IHeNVEhxvaz1133AhUljAqaRTDgYmiQk1yl745D1fkH1AGbY3t8gC/kE2BJXRE+a7wxatylWmuyivBY + K3abkwQz7eyr2roJzhpZMgIa9m9LpVqH8f4C1NePWzxnJmztq9D4AF8wm1s9o858NfJa0aiFu+JEMNBM + f/tiKkg2zrCO+QISWocmGrXLEOm95SKG2CyKMgVfWm2v6p4p/9woqo6bQVEnwcLIymyO7TUiAhZ8Yr7B + R8U7GJeizO3d8ToqRR9ZQbN5/X3Mrzz74P/QNLmgKTS00pgNPqzYduHLE178KedRC1XfNpC41A2ZjbG1 + bhcx21ewkLfgG/NRctfSFyZ+juzZ+eu628AqqDWKBA2hUYmwJWHKafoNSZcYGt9ywVqN5mJMvlLsu9xc + 467rMKBgS2zKCjg2xtYOi68Tafe/+WbBJueGLVTI72mK0NCPTm+95SVmfbnJfjlDg9EpWgNK7zGPRKH+ + 8bPj1CiwMGdF3bCx5ywRlq4nRy23Em+Eo8KERD0J4obL75z+8NXPP/+DH+gqXq7QEFkoERhETlBtywga + Rz1HgQVbYlNGQ9gYW3s3VMEy6Ea0pS5d0JAIM3rica63X7uN3ekv/OhH2sDjywhFg6AlgMa3ibIWVre1 + dJwaFhZshw2xJTbFtti4egDzsQKLFyo6Z0mWRk8sn+/deQm/sx3QZ4QJoyyKxa0RPVpsaFasqLolbYt8 + 6KGutZuSRqljW2CwlRYSzXY+g4tNsa1vhJLNzfbHDCxe6DcZxmmehhnhNLnnj6cnzGtBcuNl5Xu2XUsQ + abS1NCW7FBZS69bDhlVrWMxG2Ip6YTt/rLsAYVLObIytsfmyzVkGFSXCvlgJNNa3ciWwCMY8ATu/WJlm + f7AMU9dFDYBGxncHhM8O+t4gsTDKZiVK3Z4TV9Pzqp79uuJc6bPYCFvpCQtmO2xYrQ0lWLD1MQtLLMwu + Wt/6yraINE3N3gw29JAzsOuOK7vaTpkbtcYJcgCKny1931XnTIsgbBfIE166AL/tl7/Hv6Hq/E1Uqk9J + qf7YAptgG2yErbSfBTtiQ2zJ72bbJZ/BHXepbvL3RiZw2P2le2Ms0395ckqTT7od1gxXweOGHMUJrvS9 + 3PH9hs8kmJR8P89Q5++nBAm/YwNsgU2wDTaqdsoFG7a6af5YLCyrq4sK0NAPs0jGTnbyBYzEiIXZSxyj + xLguYgwrBy4AxGYl3UBnyW8Ew3cQ+sb26nul4w4jQLE2cmzaTNuxAbbAJl0LiAkWbLjoWxSWqtDXEkaV + 1yRweMzEkYd/bwP3yrAkz5CRroAH9WkTt3UZA4fiI6oaVjNflLZw+i29XO2l74wkQLE2AQpbQmgrbabt + 2ABbYBM9gsOjyrzNVi3a5qflUryLyhNibqxiqEgInvzIVXNc3VxtdAs4kKufSasFgceiBoAwpI5Fm9S5 + 66D0nbZKkNAGjkmbWP+hjZr/sTbTdmyALfLE9rjvggYVrhTdwuJXD9Fmetca7vdlQoonC2BErnCuPm7c + 53mybIQmjLOo2XcuZwiR6PpdACTBpc+0VawrdacNtIU20TbaSFs1CWdt9+l9j8LY6ISLKnWFjcgskBFq + dVtuAocnCvCQmwNfvObmPRed812M+vRXvqpRg3bK25XJoiC5xWM/86rOT3721fPRJyWOSynqQF2oE3Wj + jtSVOlN32kBbFFGsbYCiB/rwFIUEimxhNsE2C75Z+1gs3KrJ/b38U4QIDn24g7Nv0/n3T1227s9ZbPMr + VMsNrPfcfLNCPGG/CyAi0ALmPupmiCABEN6jLqxBaZIy5WTUmbrTBtpCm2hblac4KNjAbDG221eP58Kc + Ao+doM9OV5nmHRyc6V2fv5LFNh7id/CKy/ZzCwUTa0xskQswNGaiC4B0y+ypp1aO5KdAsu5BMFk+IdVB + lWDwz/EdvuvH8WNyDs7FOTk3daAugiTd5kFdqbMWY60NFSiMfuh2rK20WY9ZOd7mVRajYDTCMUPKKuKY + YbUiS+i2q5DkEAewDwSHzGzerE1QJKo4i3tzCP84kHuncCbOYzcdt7SwyMheHW3yMhgAIIr3+Buf0U1w + 9h2+yzE4Fsfk2JxDtwKTk9i5qQOTbtSJulFH6qp/KUNXSxtS3kbbaKPaehKU0cvMnm+9hjkH7tJjJXZ2 + YuemKupYcqjRxKNfW8t/4ODftuz/3JVf4ko+cOmlU4c3XVn9z0XuK2Ythiuf+Rbk93ura7O/+aMyXLzn + 4CH/Hsfgb/6AJc7BuTgn56YO1IU6UTfqqETWo4m1gbbQJrXN2piae7KMqzCcZHGNZ7BpiMkWihR1GH7K + IXb1EuaZv8BZU3dt2Yrj9D+grr383qn3r3mY5+nzMB3+c2rU4Q2bNP/SJXsv/xzf5Rgci2NWx7dzcc5q + 7oS6MOJjaJyiCXXWVIK1gbac0EPkxSrzi5rffjUPHlaSbFetok6Ch+TRAcJxLhzJCi//7f3w/V+4fnrH + Z29wHdq57abJr99cFH+Ln9V3OYYdy+Go5ICQwCZIVDfVccdZ1Jm6HxeLhMdi2b37oVfhAPp+Qrs5STPI + ij44LAHkELHJCKf6z2EUj1HB4YCYQuRbRZ2oG3WkrqnaJ8tyKFy1OIUwj5MI+zgtOrNL7ui2qjsW5+Jx + tcBrdaAuJyPJMVRwFjvPXFzl2tS155un69El5mDyCeVDPGKWbsMiRhTv6VGk6XN8h+9yDB2L7iWc4/gG + 5JRT/j+8XYYnp5DajQAAAABJRU5ErkJggg== \ No newline at end of file diff --git a/SunnyUI.Demo/SunnyUI.Demo.csproj b/SunnyUI.Demo/SunnyUI.Demo.csproj index b44c95c7..23b89251 100644 --- a/SunnyUI.Demo/SunnyUI.Demo.csproj +++ b/SunnyUI.Demo/SunnyUI.Demo.csproj @@ -42,10 +42,12 @@ - ..\packages\SunnyUI.3.5.2\lib\net472\SunnyUI.dll + False + ..\Bin\net472\SunnyUI.dll - ..\packages\SunnyUI.Common.3.5.1\lib\net472\SunnyUI.Common.dll + False + ..\Bin\net472\SunnyUI.Common.dll @@ -565,7 +567,6 @@ - SettingsSingleFileGenerator Settings.Designer.cs diff --git a/SunnyUI.Demo/packages.config b/SunnyUI.Demo/packages.config deleted file mode 100644 index 0e7ed8d4..00000000 --- a/SunnyUI.Demo/packages.config +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/SunnyUI/Controls/UIKnobControl.cs b/SunnyUI/Controls/UIKnobControl.cs deleted file mode 100644 index 5b0ac54c..00000000 --- a/SunnyUI/Controls/UIKnobControl.cs +++ /dev/null @@ -1,1474 +0,0 @@ -/****************************************************************************** - * SunnyUI 开源控件库、工具类库、扩展类库、多页面开发框架。 - * CopyRight (C) 2012-2023 ShenYongHua(沈永华). - * QQ群:56829229 QQ:17612584 EMail:SunnyUI@QQ.Com - * - * Blog: https://www.cnblogs.com/yhuse - * Gitee: https://gitee.com/yhuse/SunnyUI - * GitHub: https://github.com/yhuse/SunnyUI - * - * SunnyUI can be used for free under the GPL-3.0 license. - * If you use this code, please keep this note. - * 如果您使用此代码,请保留此说明。 - ****************************************************************************** - * 文件名称: UIKnob.cs - * 文件说明: C# Knob Control using Windows Forms - * 文件作者: Fabrice Lacharme - * 开源协议: CPOL - * 引用地址: https://www.codeproject.com/Tips/1187460/Csharp-Knob-Control-using-Windows-Forms -******************************************************************************/ - -#region License - -/* Copyright (c) 2017 Fabrice Lacharme - * This code was originally written by Jigar Desai - * http://www.c-sharpcorner.com/article/knob-control-using-windows-forms-and-gdi/ - * Note that another implementation exists in vb.net by Blong - * https://www.codeproject.com/Articles/2563/VB-NET-Knob-Control-using-Windows-Forms-and-GDI?msg=1884770#xx1884770xx - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -#endregion - -#region Contact - -/* - * Fabrice Lacharme - * Email: fabrice.lacharme@gmail.com - */ - -#endregion - -using System; -using System.ComponentModel; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.Windows.Forms; - -namespace Sunny.UI -{ - /* Original code from Jigar Desai on C-SharpCorner.com - * see https://www.c-sharpcorner.com/article/knob-control-using-windows-forms-and-gdi/ - * KnobControl is a knob control written in C# - * - * CodeProject: https://www.codeproject.com/Tips/1187460/Csharp-Knob-Control-using-Windows-Forms - * Github: https://github.com/fabricelacharme/KnobControl - * - * 22/08/18 - version 1.0.O.1 - * Fixed: erroneous display in case of minimum value <> 0 (negative or positive) - * Modified: DrawColorSlider, OnMouseMove - * - * Added: Font selection - * - * - * 25/08/18 - version 1.0.0.2 - * Fixed: mouse click event: pointer button is not displayed correctly when the minimum is set to a non zero value. - * Modified: getValueFromPosition - * - * - * 04/01/2019 - version 1.0.0.3 - * Font & Size selection for graduations: - * New property ScaleFontAutoSize: - * - false = no AutoSize => Allow font selection - * - true = AutoSize by program - */ - - /// - /// Summary description for KnobControl. - /// - public class UIKnob : UserControl, IStyleInterface, IZoomScale - { - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - /// - /// Styles of pointer button - /// - public enum KnobPointerStyles - { - circle, - line, - } - - // A delegate type for hooking up ValueChanged notifications. - public delegate void ValueChangedEventHandler(object Sender); - - #region private properties - - private KnobPointerStyles _knobPointerStyle = KnobPointerStyles.circle; - - private int _minimum = 0; - private int _maximum = 25; - private int _LargeChange = 5; - private int _SmallChange = 1; - - private int _scaleDivisions; - private int _scaleSubDivisions; - - private Font _scaleFont; - private bool _scaleFontAutoSize = true; - - private bool _drawDivInside; - - private bool _showSmallScale = false; - private bool _showLargeScale = true; - - private float _startAngle = 135; - private float _endAngle = 405; - private float deltaAngle; - private int _mouseWheelBarPartitions = 10; - - private float drawRatio = 1; - private float gradLength = 4; - - // Color of the pointer - private Color _PointerColor = Color.SlateBlue; - private Color _knobBackColor = Color.LightGray; - private Color _scaleColor = Color.Black; - - private int _Value = 0; - private bool isFocused = false; - private bool isKnobRotating = false; - private Rectangle rKnob; - private Point pKnob; - private Pen DottedPen; - - Brush brushKnob; - Brush brushKnobPointer; - - private Font knobFont; - - //------------------------------------------------------- - // declare Off screen image and Offscreen graphics - //------------------------------------------------------- - private Image OffScreenImage; - private Graphics gOffScreen; - - #endregion - - #region event - //------------------------------------------------------- - // An event that clients can use to be notified whenever - // the Value is Changed. - //------------------------------------------------------- - public event ValueChangedEventHandler ValueChanged; - - //------------------------------------------------------- - // Invoke the ValueChanged event; called when value - // is changed - //------------------------------------------------------- - protected virtual void OnValueChanged(object sender) - { - ValueChanged?.Invoke(sender); - } - - #endregion - - #region (* public Properties *) - - /// - /// Font of graduations - /// - [Description("Font of graduations")] - [Category("KnobControl")] - public Font ScaleFont - { - get { return _scaleFont; } - set - { - _scaleFont = value; - // Redraw - SetDimensions(); - Invalidate(); - } - } - - /// - /// Autosize or not for font of graduations - /// - [Description("Autosize Font of graduations")] - [Category("KnobControl")] - [DefaultValue(true)] - public bool ScaleFontAutoSize - { - get { return _scaleFontAutoSize; } - set - { - _scaleFontAutoSize = value; - // Redraw - SetDimensions(); - Invalidate(); - } - } - - /// - /// Start angle to display graduations - /// - /// The start angle to display graduations. - [Description("Set the start angle to display graduations (min 90)")] - [Category("KnobControl")] - [DefaultValue(135)] - public float StartAngle - { - get { return _startAngle; } - set - { - if (value >= 90 && value < _endAngle) - { - _startAngle = value; - deltaAngle = _endAngle - StartAngle; - // Redraw - Invalidate(); - } - } - } - - /// - /// End angle to display graduations - /// - /// The end angle to display graduations. - [Description("Set the end angle to display graduations (max 450)")] - [Category("KnobControl")] - [DefaultValue(405)] - public float EndAngle - { - get { return _endAngle; } - set - { - if (value <= 450 && value > _startAngle) - { - _endAngle = value; - deltaAngle = _endAngle - _startAngle; - // Redraw - Invalidate(); - } - } - } - - /// - /// Style of pointer: circle or line - /// - [Description("Set the style of the knob pointer: a circle or a line")] - [Category("KnobControl")] - public KnobPointerStyles KnobPointerStyle - { - get { return _knobPointerStyle; } - set - { - _knobPointerStyle = value; - // Redraw - Invalidate(); - } - } - - /// - /// Gets or sets the mouse wheel bar partitions. - /// - /// The mouse wheel bar partitions. - /// exception thrown when value isn't greather than zero - [Description("Set to how many parts is bar divided when using mouse wheel")] - [Category("KnobControl")] - [DefaultValue(10)] - public int MouseWheelBarPartitions - { - get { return _mouseWheelBarPartitions; } - set - { - if (value > 0) _mouseWheelBarPartitions = value; - else throw new ArgumentOutOfRangeException("MouseWheelBarPartitions has to be greather than zero"); - } - } - - /// - /// Draw string graduations inside or outside knob circle - /// - /// - [Description("Draw graduation strings inside or outside the knob circle")] - [Category("KnobControl")] - [DefaultValue(false)] - public bool DrawDivInside - { - get { return _drawDivInside; } - set - { - _drawDivInside = value; - // Redraw - SetDimensions(); - Invalidate(); - } - } - - /// - /// Color of graduations - /// - [Description("Color of graduations")] - [Category("KnobControl")] - public Color ScaleColor - { - get { return _scaleColor; } - set - { - _scaleColor = value; - // Redraw - Invalidate(); - } - } - - /// - /// Color of graduations - /// - [Description("Color of knob")] - [Category("KnobControl")] - public Color KnobBackColor - { - get { return _knobBackColor; } - set - { - _knobBackColor = value; - - SetDimensions(); - - // Redraw - Invalidate(); - } - } - - /// - /// How many divisions of maximum? - /// - [Description("Set the number of intervals between minimum and maximum")] - [Category("KnobControl")] - public int ScaleDivisions - { - get { return _scaleDivisions; } - set - { - if (value > 1) - { - _scaleDivisions = value; - // Redraw - Invalidate(); - } - } - } - - /// - /// How many subdivisions for each division - /// - [Description("Set the number of subdivisions between main divisions of graduation.")] - [Category("KnobControl")] - public int ScaleSubDivisions - { - get { return _scaleSubDivisions; } - set - { - if (value > 0 && _scaleDivisions > 0 && (_maximum - _minimum) / (value * _scaleDivisions) > 0) - { - _scaleSubDivisions = value; - // Redraw - Invalidate(); - } - } - } - - /// - /// Shows Small Scale marking. - /// - [Description("Show or hide subdivisions of graduations")] - [Category("KnobControl")] - public bool ShowSmallScale - { - get { return _showSmallScale; } - set - { - if (value == true) - { - if (_scaleDivisions > 0 && _scaleSubDivisions > 0 && (_maximum - _minimum) / (_scaleSubDivisions * _scaleDivisions) > 0) - { - _showSmallScale = value; - // Redraw - Invalidate(); - } - } - else - { - _showSmallScale = value; - // Redraw - Invalidate(); - } - } - } - - /// - /// Shows Large Scale marking - /// - [Description("Show or hide graduations")] - [Category("KnobControl")] - public bool ShowLargeScale - { - get { return _showLargeScale; } - set - { - _showLargeScale = value; - // need to redraw - SetDimensions(); - // Redraw - Invalidate(); - } - } - - /// - /// Minimum Value for knob Control - /// - [Description("set the minimum value for the knob control")] - [Category("KnobControl")] - public int Minimum - { - get { return _minimum; } - set - { - _minimum = value; - // Redraw - Invalidate(); - } - } - - /// - /// Maximum value for knob control - /// - [Description("set the maximum value for the knob control")] - [Category("KnobControl")] - public int Maximum - { - get { return _maximum; } - set - { - if (value > _minimum) - { - _maximum = value; - - if (_scaleSubDivisions > 0 && _scaleDivisions > 0 && (_maximum - _minimum) / (_scaleSubDivisions * _scaleDivisions) <= 0) - { - _showSmallScale = false; - } - - SetDimensions(); - // Redraw - Invalidate(); - } - } - } - - /// - /// value set for large change - /// - [Description("set the value for the large changes")] - [Category("KnobControl")] - public int LargeChange - { - get { return _LargeChange; } - set - { - _LargeChange = value; - // Redraw - Invalidate(); - } - } - - /// - /// value set for small change. - /// - [Description("set the minimum value for the small changes")] - [Category("KnobControl")] - public int SmallChange - { - get { return _SmallChange; } - set - { - _SmallChange = value; - // Redraw - Invalidate(); - } - } - - /// - /// Current Value of knob control - /// - [Description("set the current value of the knob control")] - [Category("KnobControl")] - public int Value - { - get { return _Value; } - set - { - if (value >= _minimum && value <= _maximum) - { - _Value = value; - // Redraw - Invalidate(); - // call delegate - OnValueChanged(this); - } - } - } - - /// - /// Color of the button - /// - [Description("set the color of the pointer")] - [Category("KnobControl")] - public Color PointerColor - { - get { return _PointerColor; } - set - { - _PointerColor = value; - - SetDimensions(); - - // Redraw - Invalidate(); - } - } - - #endregion properties - - ~UIKnob() - { - DottedPen?.Dispose(); - knobFont?.Dispose(); - brushKnob?.Dispose(); - brushKnobPointer.Dispose(); - gOffScreen?.Dispose(); - OffScreenImage?.Dispose(); - _scaleFont?.Dispose(); - } - - public UIKnob() - { - // This call is required by the Windows.Forms Form Designer. - DottedPen = new Pen(GetDarkColor(this.BackColor, 40)) - { - DashStyle = System.Drawing.Drawing2D.DashStyle.Dash, - DashCap = System.Drawing.Drawing2D.DashCap.Flat - }; - - InitializeComponent(); - - knobFont = new Font(this.Font.FontFamily, this.Font.Size); - _scaleFont = new Font(this.Font.FontFamily, this.Font.Size); - - // Properties initialisation - // "start angle" and "end angle" possible values: - // 90 = bottom (minimum value for "start angle") - // 180 = left - // 270 = top - // 360 = right - // 450 = bottom again (maximum value for "end angle") - // So the couple (90, 450) will give an entire circle and the couple (180, 360) will give half a circle. - - _startAngle = 135; - _endAngle = 405; - deltaAngle = _endAngle - _startAngle; - - _minimum = 0; - _maximum = 100; - _scaleDivisions = 11; - _scaleSubDivisions = 4; - _mouseWheelBarPartitions = 10; - - _scaleColor = Color.Black; - _knobBackColor = Color.White; - - SetDimensions(); - - Version = UIGlobal.Version; - AutoScaleMode = AutoScaleMode.None; - } - - #region override - - /// - /// Paint event: draw all - /// - /// - protected override void OnPaint(PaintEventArgs e) - { - Graphics g = e.Graphics; - gOffScreen.SetHighQuality(); - g.SetHighQuality(); - - // Set background color of Image... - gOffScreen.Clear(this.BackColor); - // Fill knob Background to give knob effect.... - gOffScreen.FillEllipse(brushKnob, rKnob); - // Set antialias effect on - gOffScreen.SmoothingMode = SmoothingMode.AntiAlias; - // Draw border of knob - gOffScreen.DrawEllipse(this.BackColor, rKnob); - - //if control is focused - if (this.isFocused) - { - gOffScreen.DrawEllipse(DottedPen, rKnob); - } - - // DrawPointer - DrawPointer(gOffScreen); - - //--------------------------------------------- - // draw small and large scale - //--------------------------------------------- - DrawDivisions(gOffScreen, rKnob); - - // Draw image on screen - g.DrawImage(OffScreenImage, 0, 0); - } - - protected override void OnPaintBackground(PaintEventArgs e) - { - // Empty To avoid Flickring due do background Drawing. - } - - /// - /// Mouse down event: select control - /// - /// - protected override void OnMouseDown(MouseEventArgs e) - { - if (IsPointinRectangle(new Point(e.X, e.Y), rKnob)) - { - if (isFocused) - { - // was already selected - // Start Rotation of knob only if it was selected before - isKnobRotating = true; - } - else - { - // Was not selected before => select it - Focus(); - isFocused = true; - isKnobRotating = false; // disallow rotation, must click again - // draw dotted border to show that it is selected - Invalidate(); - } - } - } - - //---------------------------------------------------------- - // we need to override IsInputKey method to allow user to - // use up, down, right and bottom keys other wise using this - // keys will change focus from current object to another - // object on the form - //---------------------------------------------------------- - protected override bool IsInputKey(Keys key) - { - switch (key) - { - case Keys.Up: - case Keys.Down: - case Keys.Right: - case Keys.Left: - return true; - } - - return base.IsInputKey(key); - } - - /// - /// Mouse up event: display new value - /// - /// - protected override void OnMouseUp(MouseEventArgs e) - { - if (IsPointinRectangle(new Point(e.X, e.Y), rKnob)) - { - if (isFocused == true && isKnobRotating == true) - { - // Change value is allowed only only after 2nd click - this.Value = this.GetValueFromPosition(new Point(e.X, e.Y)); - } - else - { - // 1st click = only focus - isFocused = true; - isKnobRotating = true; - } - } - - this.Cursor = Cursors.Default; - } - - /// - /// Mouse move event: drag the pointer to the mouse position - /// - /// - protected override void OnMouseMove(MouseEventArgs e) - { - //-------------------------------------- - // Following Handles Knob Rotating - //-------------------------------------- - if (e.Button == MouseButtons.Left && this.isKnobRotating == true) - { - this.Cursor = Cursors.Hand; - Point p = new Point(e.X, e.Y); - int posVal = this.GetValueFromPosition(p); - Value = posVal; - } - } - - /// - /// Mousewheel: change value - /// - /// - protected override void OnMouseWheel(MouseEventArgs e) - { - base.OnMouseWheel(e); - - if (isFocused && isKnobRotating && IsPointinRectangle(new Point(e.X, e.Y), rKnob)) - { - // the Delta value is always 120, as explained in MSDN - int v = (e.Delta / 120) * (_maximum - _minimum) / _mouseWheelBarPartitions; - SetProperValue(Value + v); - - // Avoid to send MouseWheel event to the parent container - ((HandledMouseEventArgs)e).Handled = true; - } - } - - /// - /// Leave event: disallow knob rotation - /// - /// - protected override void OnLeave(EventArgs e) - { - // unselect the control (remove dotted border) - isFocused = false; - isKnobRotating = false; - Invalidate(); - - base.OnLeave(new EventArgs()); - } - - /// - /// Key down event: change value - /// - /// - protected override void OnKeyDown(KeyEventArgs e) - { - if (isFocused) - { - //-------------------------------------------------------- - // Handles knob rotation with up,down,left and right keys - //-------------------------------------------------------- - if (e.KeyCode == Keys.Up || e.KeyCode == Keys.Right) - { - if (_Value < _maximum) Value = _Value + 1; - this.Refresh(); - } - else if (e.KeyCode == Keys.Down || e.KeyCode == Keys.Left) - { - if (_Value > _minimum) Value = _Value - 1; - this.Refresh(); - } - } - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose(bool disposing) - { - if (disposing) - { - if (components != null) - { - components.Dispose(); - } - } - - base.Dispose(disposing); - } - - #endregion - - #region Component Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - // - // KnobControl - // - this.Name = "KnobControl"; - this.Resize += new System.EventHandler(this.KnobControl_Resize); - } - - #endregion - - #region Draw - - /// - /// Draw the pointer of the knob (a small button inside the main button) - /// - /// - private void DrawPointer(Graphics Gr) - { - try - { - float radius = (float)(rKnob.Width / 2); - - // Draw a line - if (_knobPointerStyle == KnobPointerStyles.line) - { - int l = (int)radius / 2; - int w = l / 4; - Point[] pt = GetKnobLine(Gr, l); - - using Pen pen = new Pen(_PointerColor, w); - Gr.DrawLine(pen, pt[0], pt[1]); - } - else - { - // Draw a circle - int w = 0; - int h = 0; - int l = 0; - - string strvalmax = _maximum.ToString(); - string strvalmin = _minimum.ToString(); - string strval = strvalmax.Length > strvalmin.Length ? strvalmax : strvalmin; - double val = Convert.ToDouble(strval); - String str = String.Format("{0,0:D}", (int)val); - - float fSize; - SizeF strsize; - if (_scaleFontAutoSize) - { - // Use font family = _scaleFont, but size = automatic - fSize = (float)(6F * drawRatio); - if (fSize < 6) fSize = 6; - strsize = TextRenderer.MeasureText(str, new Font(_scaleFont.FontFamily, fSize)); - } - else - { - // Use font family = _scaleFont, but size = fixed - fSize = _scaleFont.Size; - strsize = TextRenderer.MeasureText(str, _scaleFont); - } - - int strw = (int)strsize.Width; - int strh = (int)strsize.Height; - w = Math.Max(strw, strh); - // radius of small circle - l = (int)radius - w / 2; - - h = w; - - Point Arrow = this.GetKnobPosition(l - 2); // Remove 2 pixels to offset the small circle inside the knob - - // Draw pointer arrow that shows knob position - Rectangle rPointer = new Rectangle(Arrow.X - w / 2, Arrow.Y - w / 2, w, h); - - using Pen pen = new Pen(GetLightColor(_PointerColor, 55)); - DrawInsetCircle(ref Gr, rPointer, pen); - Gr.FillEllipse(brushKnobPointer, rPointer); - } - } - catch (Exception ex) - { - Console.Write(ex.Message); - } - } - - /// - /// Draw graduations - /// - /// - /// Knob rectangle - /// - private bool DrawDivisions(Graphics Gr, RectangleF rc) - { - if (this == null) - return false; - - float cx = pKnob.X; - float cy = pKnob.Y; - - float w = rc.Width; - float h = rc.Height; - - float tx; - float ty; - - float incr = GetRadian((_endAngle - _startAngle) / ((_scaleDivisions - 1) * (_scaleSubDivisions + 1))); - float currentAngle = GetRadian(_startAngle); - - float radius = (float)(rc.Width / 2); - float rulerValue = (float)_minimum; - - using Pen penL = new Pen(_scaleColor, (2 * drawRatio)); - using Pen penS = new Pen(_scaleColor, (1 * drawRatio)); - using SolidBrush br = new SolidBrush(_scaleColor); - - PointF ptStart = new PointF(0, 0); - PointF ptEnd = new PointF(0, 0); - int n = 0; - - if (_showLargeScale) - { - // Size of maxi string - string strvalmax = _maximum.ToString(); - string strvalmin = _minimum.ToString(); - string strval = strvalmax.Length > strvalmin.Length ? strvalmax : strvalmin; - double val = Convert.ToDouble(strval); - //double val = _maximum; - String str = String.Format("{0,0:D}", (int)val); - float fSize; - SizeF strsize; - - if (_scaleFontAutoSize) - { - fSize = (float)(6F * drawRatio); - if (fSize < 6) - fSize = 6; - } - else - { - fSize = _scaleFont.Size; - } - - using var font = new Font(_scaleFont.FontFamily, fSize); - strsize = TextRenderer.MeasureText(str, font); - - int strw = (int)strsize.Width; - int strh = (int)strsize.Height; - int wmax = Math.Max(strw, strh); - - float l = 0; - gradLength = 2 * drawRatio; - - for (; n < _scaleDivisions; n++) - { - // draw divisions - ptStart.X = (float)(cx + (radius) * Math.Cos(currentAngle)); - ptStart.Y = (float)(cy + (radius) * Math.Sin(currentAngle)); - - ptEnd.X = (float)(cx + (radius + gradLength) * Math.Cos(currentAngle)); - ptEnd.Y = (float)(cy + (radius + gradLength) * Math.Sin(currentAngle)); - - Gr.DrawLine(penL, ptStart, ptEnd); - - //Draw graduation values - val = Math.Round(rulerValue); - str = String.Format("{0,0:D}", (int)val); - - // If autosize - using Font tmpFont = _scaleFontAutoSize ? new Font(_scaleFont.FontFamily, fSize) : new Font(_scaleFont.FontFamily, _scaleFont.Size); - strsize = TextRenderer.MeasureText(str, tmpFont); - - if (_drawDivInside) - { - // graduations values inside the knob - l = (int)radius - (wmax / 2) - 2; - - tx = (float)(cx + l * Math.Cos(currentAngle)); - ty = (float)(cy + l * Math.Sin(currentAngle)); - } - else - { - // graduation values outside the knob - //l = (Width / 2) - (wmax / 2) ; - l = radius + gradLength + wmax / 2; - - tx = (float)(cx + l * Math.Cos(currentAngle)); - ty = (float)(cy + l * Math.Sin(currentAngle)); - } - - Gr.DrawString(str, - font, - br, - tx - (float)(strsize.Width * 0.5), - ty - (float)(strsize.Height * 0.5)); - - rulerValue += (float)((_maximum - _minimum) / (_scaleDivisions - 1)); - - if (n == _scaleDivisions - 1) - { - break; - } - - // Subdivisions - #region SubDivisions - - if (_scaleDivisions <= 0) - { - currentAngle += incr; - } - else - { - for (int j = 0; j <= _scaleSubDivisions; j++) - { - currentAngle += incr; - - // if user want to display small graduations - if (_showSmallScale) - { - ptStart.X = (float)(cx + radius * Math.Cos(currentAngle)); - ptStart.Y = (float)(cy + radius * Math.Sin(currentAngle)); - ptEnd.X = (float)(cx + (radius + gradLength / 2) * Math.Cos(currentAngle)); - ptEnd.Y = (float)(cy + (radius + gradLength / 2) * Math.Sin(currentAngle)); - - Gr.DrawLine(penS, ptStart, ptEnd); - } - } - } - - #endregion - } - } - - return true; - } - - /// - /// Set position of button inside its rectangle to insure that divisions will fit. - /// - private void SetDimensions() - { - // Rectangle - float x, y, w, h; - x = 0; - y = 0; - w = h = Width; - - // Calculate ratio - drawRatio = w / 150; - if (drawRatio == 0.0) - drawRatio = 1; - - if (_showLargeScale) - { - using Graphics Gr = this.CreateGraphics(); - string strvalmax = _maximum.ToString(); - string strvalmin = _minimum.ToString(); - string strval = strvalmax.Length > strvalmin.Length ? strvalmax : strvalmin; - double val = Convert.ToDouble(strval); - - //double val = _maximum; - String str = String.Format("{0,0:D}", (int)val); - - float fSize = _scaleFont.Size; - Font font; - if (_scaleFontAutoSize) - { - fSize = (float)(6F * drawRatio); - if (fSize < 6) - fSize = 6; - font = new Font(_scaleFont.FontFamily, fSize); - } - else - { - fSize = _scaleFont.Size; - font = new Font(_scaleFont.FontFamily, _scaleFont.Size); - } - - SizeF strsize = TextRenderer.MeasureText(str, font); - font.Dispose(); - - // Graduations outside - gradLength = 4 * drawRatio; - - if (_drawDivInside) - { - // Graduations inside : remove only 2*8 pixels - //x = y = 8; - x = y = gradLength; - w = Width - 2 * x; - } - else - { - // remove 2 * size of text and length of graduation - //gradLength = 4 * drawRatio; - int strw = (int)strsize.Width; - int strh = (int)strsize.Height; - - int max = Math.Max(strw, strh); - x = max; - y = max; - w = (int)(Width - 2 * max - gradLength); - } - - if (w <= 0) w = 1; - h = w; - - // Rectangle of the rounded knob - this.rKnob = new Rectangle((int)x, (int)y, (int)w, (int)h); - } - else - { - this.rKnob = new Rectangle(0, 0, Width, Height); - } - - // Center of knob - this.pKnob = new Point(rKnob.X + rKnob.Width / 2, rKnob.Y + rKnob.Height / 2); - - // create offscreen image - this.OffScreenImage = new Bitmap(this.Width, this.Height); - // create offscreen graphics - this.gOffScreen = Graphics.FromImage(OffScreenImage); - - // Depends on retangle dimensions - // create LinearGradientBrush for creating knob - brushKnob = new LinearGradientBrush( - rKnob, GetLightColor(_knobBackColor, 55), GetDarkColor(_knobBackColor, 55), LinearGradientMode.ForwardDiagonal); - - // create LinearGradientBrush for knobPointer - brushKnobPointer = new LinearGradientBrush( - rKnob, GetLightColor(_PointerColor, 55), GetDarkColor(_PointerColor, 55), LinearGradientMode.ForwardDiagonal); - } - - #endregion - - #region resize - - /// - /// Resize event - /// - /// - /// - private void KnobControl_Resize(object sender, System.EventArgs e) - { - // Control remains square - Height = Width; - - SetDimensions(); - Invalidate(); - } - - #endregion - - #region private functions - - /// - /// Sets the trackbar value so that it wont exceed allowed range. - /// - /// The value. - private void SetProperValue(int val) - { - if (val < _minimum) Value = _minimum; - else if (val > _maximum) Value = _maximum; - else Value = val; - } - - /// - /// gets knob position that is to be drawn on control minus a small amount in order that the knob position stay inside the circle. - /// - /// Point that describes current knob position - private Point GetKnobPosition(int l) - { - float cx = pKnob.X; - float cy = pKnob.Y; - - // FAB: 21/08/18 - float degree = deltaAngle * (this.Value - _minimum) / (_maximum - _minimum); - - degree = GetRadian(degree + _startAngle); - - Point Pos = new Point(0, 0) - { - X = (int)(cx + l * Math.Cos(degree)), - Y = (int)(cy + l * Math.Sin(degree)) - }; - - return Pos; - } - - /// - /// return 2 points of a line starting from the center of the knob to the periphery - /// - /// - /// - private Point[] GetKnobLine(Graphics Gr, int l) - { - Point[] pret = new Point[2]; - - float cx = pKnob.X; - float cy = pKnob.Y; - - float radius = (float)(rKnob.Width / 2); - - // FAB: 21/08/18 - float degree = deltaAngle * (this.Value - _minimum) / (_maximum - _minimum); - - degree = GetRadian(degree + _startAngle); - - double val = _maximum; - String str = String.Format("{0,0:D}", (int)val); - float fSize; - SizeF strsize; - - if (!_scaleFontAutoSize) - { - fSize = _scaleFont.Size; - strsize = TextRenderer.MeasureText(str, _scaleFont); - } - else - { - fSize = (float)(6F * drawRatio); - if (fSize < 6) - fSize = 6; - - knobFont = new Font(_scaleFont.FontFamily, fSize); - strsize = TextRenderer.MeasureText(str, knobFont); - } - - int strw = (int)strsize.Width; - int strh = (int)strsize.Height; - int w = Math.Max(strw, strh); - - Point Pos = new Point(0, 0); - - if (_drawDivInside) - { - // Center (from) - Pos.X = (int)(cx + (radius / 10) * Math.Cos(degree)); - Pos.Y = (int)(cy + (radius / 10) * Math.Sin(degree)); - pret[0] = new Point(Pos.X, Pos.Y); - - // External (to) - Pos.X = (int)(cx + (radius - w) * Math.Cos(degree)); - Pos.Y = (int)(cy + (radius - w) * Math.Sin(degree)); - pret[1] = new Point(Pos.X, Pos.Y); - } - else - { - // Internal (from) - Pos.X = (int)(cx + (radius - drawRatio * 10 - l) * Math.Cos(degree)); - Pos.Y = (int)(cy + (radius - drawRatio * 10 - l) * Math.Sin(degree)); - - pret[0] = new Point(Pos.X, Pos.Y); - - // External (to) - Pos.X = (int)(cx + (radius - 4) * Math.Cos(degree)); - Pos.Y = (int)(cy + (radius - 4) * Math.Sin(degree)); - - pret[1] = new Point(Pos.X, Pos.Y); - } - - return pret; - } - - /// - /// converts geometrical position into value.. - /// - /// Point that is to be converted - /// Value derived from position - private int GetValueFromPosition(Point p) - { - float degree = 0; - int v = 0; - - if (p.X <= pKnob.X) - { - degree = (float)(pKnob.Y - p.Y) / (float)(pKnob.X - p.X); - degree = (float)Math.Atan(degree); - degree = (degree) * (float)(180 / Math.PI) + (180 - _startAngle); - } - else if (p.X > pKnob.X) - { - degree = (float)(p.Y - pKnob.Y) / (float)(p.X - pKnob.X); - degree = (float)Math.Atan(degree); - degree = (degree) * (float)(180 / Math.PI) + 360 - _startAngle; - } - - // round to the nearest value (when you click just before or after a graduation!) - // FAB: 25/08/18 - v = _minimum + (int)Math.Round(degree * (_maximum - _minimum) / deltaAngle); - - if (v > _maximum) v = _maximum; - if (v < _minimum) v = _minimum; - return v; - } - - #endregion - - private float DefaultFontSize = -1; - - public void SetDPIScale() - { - if (!UIDPIScale.NeedSetDPIFont()) return; - if (DefaultFontSize < 0) DefaultFontSize = this.Font.Size; - this.SetDPIScaleFont(DefaultFontSize); - } - - public string Version - { - get; - } - - /// - /// Tag字符串 - /// - [DefaultValue(null)] - [Description("获取或设置包含有关控件的数据的对象字符串"), Category("SunnyUI")] - public string TagString - { - get; set; - } - - /// - /// 自定义主题风格 - /// - [DefaultValue(false), Browsable(false)] - [Description("获取或设置可以自定义主题风格"), Category("SunnyUI")] - public bool StyleCustomMode { get; set; } - - protected UIStyle _style = UIStyle.Inherited; - - /// - /// 主题样式 - /// - [DefaultValue(UIStyle.Inherited), Description("主题样式"), Category("SunnyUI")] - public UIStyle Style - { - get => _style; - set => SetStyle(value); - } - - /// - /// 设置主题样式 - /// - /// 主题样式 - private void SetStyle(UIStyle style) - { - if (!style.IsCustom()) - { - SetStyleColor(style.Colors()); - Invalidate(); - } - - _style = style == UIStyle.Inherited ? UIStyle.Inherited : UIStyle.Custom; - } - - public void SetInheritedStyle(UIStyle style) - { - SetStyle(style); - _style = UIStyle.Inherited; - } - - public virtual void SetStyleColor(UIBaseStyle uiColor) - { - - } - - /// - /// 禁止控件跟随窗体缩放 - /// - [DefaultValue(false), Category("SunnyUI"), Description("禁止控件跟随窗体缩放")] - public bool ZoomScaleDisabled { get; set; } - - /// - /// 控件缩放前在其容器里的位置 - /// - [Browsable(false), DefaultValue(typeof(Rectangle), "0, 0, 0, 0")] - public Rectangle ZoomScaleRect { get; set; } - - /// - /// 设置控件缩放比例 - /// - /// 缩放比例 - public virtual void SetZoomScale(float scale) - { - - } - - #region Utility - - public static float GetRadian(float val) - { - return (float)(val * Math.PI / 180); - } - - public static Color GetDarkColor(Color c, byte d) - { - byte r = 0; - byte g = 0; - byte b = 0; - - if (c.R > d) r = (byte)(c.R - d); - if (c.G > d) g = (byte)(c.G - d); - if (c.B > d) b = (byte)(c.B - d); - - Color c1 = Color.FromArgb(r, g, b); - return c1; - } - - public static Color GetLightColor(Color c, byte d) - { - byte r = 255; - byte g = 255; - byte b = 255; - - if (c.R + d < 255) r = (byte)(c.R + d); - if (c.G + d < 255) g = (byte)(c.G + d); - if (c.B + d < 255) b = (byte)(c.B + d); - - Color c2 = Color.FromArgb(r, g, b); - return c2; - } - - /// - /// Method which checks is particular point is in rectangle - /// - /// Point to be Chaecked - /// Rectangle - /// true is Point is in rectangle, else false - public static bool IsPointinRectangle(Point p, Rectangle r) - { - bool flag = false; - if (p.X > r.X && p.X < r.X + r.Width && p.Y > r.Y && p.Y < r.Y + r.Height) - { - flag = true; - } - - return flag; - - } - public static void DrawInsetCircle(ref Graphics g, Rectangle r, Pen p) - { - using Pen p1 = new Pen(GetDarkColor(p.Color, 50)); - using Pen p2 = new Pen(GetLightColor(p.Color, 50)); - for (int i = 0; i < p.Width; i++) - { - Rectangle r1 = new Rectangle(r.X + i, r.Y + i, r.Width - i * 2, r.Height - i * 2); - g.DrawArc(p2, r1, -45, 180); - g.DrawArc(p1, r1, 135, 180); - } - } - - #endregion - } -} \ No newline at end of file diff --git a/SunnyUI/Controls/UIKnobControl.resx b/SunnyUI/Controls/UIKnobControl.resx deleted file mode 100644 index 1af7de15..00000000 --- a/SunnyUI/Controls/UIKnobControl.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/SunnyUI/Forms/UILoginForm.Designer.cs b/SunnyUI/Forms/UILoginForm.Designer.cs index 6139be38..e66105cc 100644 --- a/SunnyUI/Forms/UILoginForm.Designer.cs +++ b/SunnyUI/Forms/UILoginForm.Designer.cs @@ -54,16 +54,14 @@ // uiLine1 // uiLine1.BackColor = System.Drawing.Color.Transparent; - uiLine1.FillColor = System.Drawing.Color.White; uiLine1.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); - uiLine1.LineColor2 = System.Drawing.Color.FromArgb(80, 160, 255); + uiLine1.ForeColor = System.Drawing.Color.FromArgb(48, 48, 48); uiLine1.Location = new System.Drawing.Point(4, 85); uiLine1.MinimumSize = new System.Drawing.Size(2, 2); uiLine1.Name = "uiLine1"; uiLine1.RadiusSides = UICornerRadiusSides.None; uiLine1.RectSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.None; uiLine1.Size = new System.Drawing.Size(182, 28); - uiLine1.Style = UIStyle.Custom; uiLine1.StyleCustomMode = true; uiLine1.TabIndex = 5; uiLine1.Text = "用户登录"; @@ -117,6 +115,7 @@ btnLogin.Size = new System.Drawing.Size(86, 29); btnLogin.TabIndex = 2; btnLogin.Text = "登录"; + btnLogin.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); btnLogin.Click += btnLogin_Click; // // btnCancel @@ -143,6 +142,7 @@ btnCancel.Symbol = 61453; btnCancel.TabIndex = 3; btnCancel.Text = "取消"; + btnCancel.TipsFont = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); btnCancel.Click += btnCancel_Click; // // lblTitle @@ -164,6 +164,7 @@ lblSubText.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; lblSubText.BackColor = System.Drawing.Color.Transparent; lblSubText.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + lblSubText.ForeColor = System.Drawing.Color.FromArgb(48, 48, 48); lblSubText.Location = new System.Drawing.Point(426, 421); lblSubText.Name = "lblSubText"; lblSubText.Size = new System.Drawing.Size(310, 26); diff --git a/SunnyUI/Style/UIStyles.cs b/SunnyUI/Style/UIStyles.cs index 2ab118ea..57fd1cdc 100644 --- a/SunnyUI/Style/UIStyles.cs +++ b/SunnyUI/Style/UIStyles.cs @@ -201,8 +201,7 @@ namespace Sunny.UI public static void InitColorful(Color styleColor, Color foreColor) { Colorful.Init(styleColor, foreColor); - Style = UIStyle.Colorful; - SetStyle(Style); + SetStyle(UIStyle.Colorful); } private static readonly ConcurrentDictionary Styles = new ConcurrentDictionary(); @@ -394,7 +393,7 @@ namespace Sunny.UI /// 主题样式 public static void SetStyle(UIStyle style) { - if (Style == style) return; + if (style != UIStyle.Colorful && Style == style) return; Style = style; if (!style.IsValid()) return;