Added transparent button to color picker

This commit is contained in:
Jaex 2016-09-01 15:06:30 +03:00
parent 44601e4e10
commit 5d48b3c4f9
6 changed files with 127 additions and 207 deletions

View file

@ -28,6 +28,7 @@ protected override void Dispose(bool disposing)
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ColorPickerForm));
this.btnCancel = new System.Windows.Forms.Button();
this.btnOK = new System.Windows.Forms.Button();
@ -66,8 +67,10 @@ private void InitializeComponent()
this.lblKeyPerc = new System.Windows.Forms.Label();
this.nudAlpha = new System.Windows.Forms.NumericUpDown();
this.lblAlpha = new System.Windows.Forms.Label();
this.cbTransparent = new ShareX.HelpersLib.ColorButton();
this.pbColorPreview = new ShareX.HelpersLib.MyPictureBox();
this.colorPicker = new ShareX.HelpersLib.ColorPicker();
this.ttMain = new System.Windows.Forms.ToolTip(this.components);
((System.ComponentModel.ISupportInitialize)(this.nudKey)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nudYellow)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nudMagenta)).BeginInit();
@ -382,6 +385,16 @@ private void InitializeComponent()
resources.ApplyResources(this.lblAlpha, "lblAlpha");
this.lblAlpha.Name = "lblAlpha";
//
// cbTransparent
//
this.cbTransparent.Color = System.Drawing.Color.Transparent;
resources.ApplyResources(this.cbTransparent, "cbTransparent");
this.cbTransparent.ManualButtonClick = true;
this.cbTransparent.Name = "cbTransparent";
this.ttMain.SetToolTip(this.cbTransparent, resources.GetString("cbTransparent.ToolTip"));
this.cbTransparent.UseVisualStyleBackColor = true;
this.cbTransparent.Click += new System.EventHandler(this.cbTransparent_Click);
//
// pbColorPreview
//
this.pbColorPreview.BackColor = System.Drawing.SystemColors.Window;
@ -398,12 +411,19 @@ private void InitializeComponent()
this.colorPicker.Name = "colorPicker";
this.colorPicker.ColorChanged += new ShareX.HelpersLib.ColorEventHandler(this.colorPicker_ColorChanged);
//
// ttMain
//
this.ttMain.AutoPopDelay = 5000;
this.ttMain.InitialDelay = 100;
this.ttMain.ReshowDelay = 100;
//
// ColorPickerForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.SystemColors.Window;
this.CancelButton = this.btnCancel;
resources.ApplyResources(this, "$this");
this.Controls.Add(this.cbTransparent);
this.Controls.Add(this.nudBlue);
this.Controls.Add(this.nudGreen);
this.Controls.Add(this.nudRed);
@ -505,5 +525,7 @@ private void InitializeComponent()
protected System.Windows.Forms.TextBox txtHex;
protected System.Windows.Forms.Button btnCancel;
protected System.Windows.Forms.Button btnOK;
private ColorButton cbTransparent;
private System.Windows.Forms.ToolTip ttMain;
}
}

View file

@ -203,6 +203,11 @@ private void RGB_ValueChanged(object sender, EventArgs e)
}
}
private void cbTransparent_Click(object sender, EventArgs e)
{
nudAlpha.Value = 0;
}
private void HSB_ValueChanged(object sender, EventArgs e)
{
if (!controlChangingColor)

View file

@ -145,7 +145,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;btnCancel.ZOrder" xml:space="preserve">
<value>16</value>
<value>17</value>
</data>
<data name="btnOK.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
@ -172,7 +172,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;btnOK.ZOrder" xml:space="preserve">
<value>17</value>
<value>18</value>
</data>
<data name="lblOld.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -202,7 +202,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblOld.ZOrder" xml:space="preserve">
<value>18</value>
<value>19</value>
</data>
<data name="lblNew.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -232,7 +232,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblNew.ZOrder" xml:space="preserve">
<value>19</value>
<value>20</value>
</data>
<data name="txtHex.Location" type="System.Drawing.Point, System.Drawing">
<value>560, 174</value>
@ -248,7 +248,7 @@
</data>
<data name="txtHex.Text" xml:space="preserve">
<value>FF00FF00</value>
<comment>@Invariant</comment></data>
</data>
<data name="txtHex.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
<value>Center</value>
</data>
@ -262,7 +262,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;txtHex.ZOrder" xml:space="preserve">
<value>20</value>
<value>21</value>
</data>
<data name="lblHex.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -281,7 +281,7 @@
</data>
<data name="lblHex.Text" xml:space="preserve">
<value>Hex:</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;lblHex.Name" xml:space="preserve">
<value>lblHex</value>
</data>
@ -292,7 +292,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblHex.ZOrder" xml:space="preserve">
<value>21</value>
<value>22</value>
</data>
<data name="nudKey.Location" type="System.Drawing.Point, System.Drawing">
<value>560, 142</value>
@ -316,7 +316,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;nudKey.ZOrder" xml:space="preserve">
<value>22</value>
<value>23</value>
</data>
<data name="nudYellow.Location" type="System.Drawing.Point, System.Drawing">
<value>560, 108</value>
@ -340,7 +340,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;nudYellow.ZOrder" xml:space="preserve">
<value>23</value>
<value>24</value>
</data>
<data name="nudMagenta.Location" type="System.Drawing.Point, System.Drawing">
<value>560, 78</value>
@ -364,7 +364,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;nudMagenta.ZOrder" xml:space="preserve">
<value>24</value>
<value>25</value>
</data>
<data name="nudCyan.Location" type="System.Drawing.Point, System.Drawing">
<value>560, 46</value>
@ -388,7 +388,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;nudCyan.ZOrder" xml:space="preserve">
<value>25</value>
<value>26</value>
</data>
<data name="lblKey.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -418,7 +418,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblKey.ZOrder" xml:space="preserve">
<value>26</value>
<value>27</value>
</data>
<data name="lblYellow.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -448,7 +448,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblYellow.ZOrder" xml:space="preserve">
<value>27</value>
<value>28</value>
</data>
<data name="lblMagenta.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -478,7 +478,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblMagenta.ZOrder" xml:space="preserve">
<value>28</value>
<value>29</value>
</data>
<data name="lblCyan.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -508,7 +508,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblCyan.ZOrder" xml:space="preserve">
<value>29</value>
<value>30</value>
</data>
<data name="lblHue.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -530,7 +530,7 @@
</data>
<data name="lblHue.Text" xml:space="preserve">
<value>°</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;lblHue.Name" xml:space="preserve">
<value>lblHue</value>
</data>
@ -541,7 +541,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblHue.ZOrder" xml:space="preserve">
<value>30</value>
<value>31</value>
</data>
<data name="lblBrightnessPerc.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -563,7 +563,7 @@
</data>
<data name="lblBrightnessPerc.Text" xml:space="preserve">
<value>%</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;lblBrightnessPerc.Name" xml:space="preserve">
<value>lblBrightnessPerc</value>
</data>
@ -574,7 +574,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblBrightnessPerc.ZOrder" xml:space="preserve">
<value>31</value>
<value>32</value>
</data>
<data name="lblSaturationPerc.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -596,7 +596,7 @@
</data>
<data name="lblSaturationPerc.Text" xml:space="preserve">
<value>%</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;lblSaturationPerc.Name" xml:space="preserve">
<value>lblSaturationPerc</value>
</data>
@ -607,7 +607,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblSaturationPerc.ZOrder" xml:space="preserve">
<value>32</value>
<value>33</value>
</data>
<data name="nudBlue.Location" type="System.Drawing.Point, System.Drawing">
<value>408, 78</value>
@ -631,7 +631,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;nudBlue.ZOrder" xml:space="preserve">
<value>0</value>
<value>1</value>
</data>
<data name="nudGreen.Location" type="System.Drawing.Point, System.Drawing">
<value>408, 46</value>
@ -655,7 +655,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;nudGreen.ZOrder" xml:space="preserve">
<value>1</value>
<value>2</value>
</data>
<data name="nudRed.Location" type="System.Drawing.Point, System.Drawing">
<value>408, 14</value>
@ -679,7 +679,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;nudRed.ZOrder" xml:space="preserve">
<value>2</value>
<value>3</value>
</data>
<data name="nudBrightness.Location" type="System.Drawing.Point, System.Drawing">
<value>408, 174</value>
@ -703,7 +703,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;nudBrightness.ZOrder" xml:space="preserve">
<value>33</value>
<value>34</value>
</data>
<data name="nudSaturation.Location" type="System.Drawing.Point, System.Drawing">
<value>408, 142</value>
@ -727,7 +727,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;nudSaturation.ZOrder" xml:space="preserve">
<value>34</value>
<value>35</value>
</data>
<data name="nudHue.Location" type="System.Drawing.Point, System.Drawing">
<value>408, 108</value>
@ -751,7 +751,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;nudHue.ZOrder" xml:space="preserve">
<value>35</value>
<value>36</value>
</data>
<data name="rbBlue.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -781,7 +781,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;rbBlue.ZOrder" xml:space="preserve">
<value>3</value>
<value>4</value>
</data>
<data name="rbGreen.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -811,7 +811,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;rbGreen.ZOrder" xml:space="preserve">
<value>4</value>
<value>5</value>
</data>
<data name="rbRed.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -841,7 +841,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;rbRed.ZOrder" xml:space="preserve">
<value>5</value>
<value>6</value>
</data>
<data name="rbBrightness.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -871,7 +871,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;rbBrightness.ZOrder" xml:space="preserve">
<value>36</value>
<value>37</value>
</data>
<data name="rbSaturation.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -901,7 +901,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;rbSaturation.ZOrder" xml:space="preserve">
<value>37</value>
<value>38</value>
</data>
<data name="rbHue.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -931,7 +931,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;rbHue.ZOrder" xml:space="preserve">
<value>38</value>
<value>39</value>
</data>
<data name="lblDecimal.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -961,7 +961,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblDecimal.ZOrder" xml:space="preserve">
<value>14</value>
<value>15</value>
</data>
<data name="txtDecimal.Location" type="System.Drawing.Point, System.Drawing">
<value>560, 204</value>
@ -974,7 +974,7 @@
</data>
<data name="txtDecimal.Text" xml:space="preserve">
<value>12345678</value>
<comment>@Invariant</comment></data>
</data>
<data name="txtDecimal.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
<value>Center</value>
</data>
@ -988,7 +988,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;txtDecimal.ZOrder" xml:space="preserve">
<value>13</value>
<value>14</value>
</data>
<data name="lblCyanPerc.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -1010,7 +1010,7 @@
</data>
<data name="lblCyanPerc.Text" xml:space="preserve">
<value>%</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;lblCyanPerc.Name" xml:space="preserve">
<value>lblCyanPerc</value>
</data>
@ -1021,7 +1021,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblCyanPerc.ZOrder" xml:space="preserve">
<value>12</value>
<value>13</value>
</data>
<data name="lblMagentaPerc.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -1043,7 +1043,7 @@
</data>
<data name="lblMagentaPerc.Text" xml:space="preserve">
<value>%</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;lblMagentaPerc.Name" xml:space="preserve">
<value>lblMagentaPerc</value>
</data>
@ -1054,7 +1054,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblMagentaPerc.ZOrder" xml:space="preserve">
<value>11</value>
<value>12</value>
</data>
<data name="lblYellowPerc.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -1076,7 +1076,7 @@
</data>
<data name="lblYellowPerc.Text" xml:space="preserve">
<value>%</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;lblYellowPerc.Name" xml:space="preserve">
<value>lblYellowPerc</value>
</data>
@ -1087,7 +1087,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblYellowPerc.ZOrder" xml:space="preserve">
<value>10</value>
<value>11</value>
</data>
<data name="lblKeyPerc.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -1109,7 +1109,7 @@
</data>
<data name="lblKeyPerc.Text" xml:space="preserve">
<value>%</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;lblKeyPerc.Name" xml:space="preserve">
<value>lblKeyPerc</value>
</data>
@ -1120,7 +1120,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblKeyPerc.ZOrder" xml:space="preserve">
<value>9</value>
<value>10</value>
</data>
<data name="nudAlpha.Location" type="System.Drawing.Point, System.Drawing">
<value>560, 14</value>
@ -1144,7 +1144,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;nudAlpha.ZOrder" xml:space="preserve">
<value>8</value>
<value>9</value>
</data>
<data name="lblAlpha.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -1174,7 +1174,37 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblAlpha.ZOrder" xml:space="preserve">
<value>7</value>
<value>8</value>
</data>
<data name="cbTransparent.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="cbTransparent.Location" type="System.Drawing.Point, System.Drawing">
<value>612, 13</value>
</data>
<data name="cbTransparent.Size" type="System.Drawing.Size, System.Drawing">
<value>23, 23</value>
</data>
<data name="cbTransparent.TabIndex" type="System.Int32, mscorlib">
<value>39</value>
</data>
<metadata name="ttMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="cbTransparent.ToolTip" xml:space="preserve">
<value>Transparent</value>
</data>
<data name="&gt;&gt;cbTransparent.Name" xml:space="preserve">
<value>cbTransparent</value>
</data>
<data name="&gt;&gt;cbTransparent.Type" xml:space="preserve">
<value>ShareX.HelpersLib.ColorButton, ShareX.HelpersLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;cbTransparent.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;cbTransparent.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="pbColorPreview.Location" type="System.Drawing.Point, System.Drawing">
<value>376, 208</value>
@ -1195,7 +1225,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;pbColorPreview.ZOrder" xml:space="preserve">
<value>6</value>
<value>7</value>
</data>
<data name="colorPicker.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -1219,7 +1249,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;colorPicker.ZOrder" xml:space="preserve">
<value>15</value>
<value>16</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
@ -1227,12 +1257,21 @@
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>642, 273</value>
</data>
<data name="$this.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterScreen</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>ShareX - Color picker</value>
</data>
<data name="&gt;&gt;ttMain.Name" xml:space="preserve">
<value>ttMain</value>
</data>
<data name="&gt;&gt;ttMain.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolTip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>ColorPickerForm</value>
</data>

View file

@ -51,6 +51,9 @@ public Color Color
}
}
[DefaultValue(false)]
public bool ManualButtonClick { get; set; }
protected void OnColorChanged(Color color)
{
if (ColorChanged != null)
@ -63,7 +66,10 @@ protected override void OnMouseClick(MouseEventArgs mevent)
{
base.OnMouseClick(mevent);
ShowColorDialog();
if (!ManualButtonClick)
{
ShowColorDialog();
}
}
public void ShowColorDialog()
@ -95,9 +101,12 @@ protected override void OnPaint(PaintEventArgs pevent)
}
}
using (Brush brush = new SolidBrush(Color))
if (Color.A > 0)
{
g.FillRectangle(brush, boxRectangle);
using (Brush brush = new SolidBrush(Color))
{
g.FillRectangle(brush, boxRectangle);
}
}
g.DrawRectangleProper(Pens.DarkGray, boxRectangle);

View file

@ -1,152 +0,0 @@
#region License Information (GPL v3)
/*
ShareX - A program that allows you to take screenshots and share any file type
Copyright (c) 2007-2016 ShareX Team
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Optionally you can also view the license at <http://www.gnu.org/licenses/>.
*/
#endregion License Information (GPL v3)
using System;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Design;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
namespace ShareX.HelpersLib
{
[DefaultEvent("MouseClick")]
public class GreenlightButton : Control
{
[Editor("System.ComponentModel.Design.MultilineStringEditor, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]
public override string Text
{
get
{
return text;
}
set
{
if (value == null)
{
value = "";
}
if (text != value)
{
text = value;
Refresh();
}
}
}
private string text;
private bool isHover;
private LinearGradientBrush backgroundBrush, backgroundHoverBrush, borderBrush;
private Pen borderPen;
private bool ready;
public GreenlightButton()
{
SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw | ControlStyles.OptimizedDoubleBuffer | ControlStyles.SupportsTransparentBackColor, true);
}
private void Prepare()
{
ForeColor = Color.White;
backgroundBrush = new LinearGradientBrush(new Rectangle(0, 0, ClientSize.Width, ClientSize.Height), Color.FromArgb(121, 153, 5), Color.FromArgb(83, 105, 5),
LinearGradientMode.Vertical);
backgroundHoverBrush = new LinearGradientBrush(new Rectangle(0, 0, ClientSize.Width, ClientSize.Height), Color.FromArgb(140, 170, 5), Color.FromArgb(93, 115, 5),
LinearGradientMode.Vertical);
borderBrush = new LinearGradientBrush(new Rectangle(0, 0, ClientSize.Width, ClientSize.Height), Color.White, Color.Black, LinearGradientMode.Vertical);
borderPen = new Pen(borderBrush);
Font = new Font("Arial", 12);
ready = true;
}
protected override void OnPaint(PaintEventArgs pe)
{
base.OnPaint(pe);
if (ready)
{
Graphics g = pe.Graphics;
DrawBackground(g);
if (!string.IsNullOrEmpty(Text))
{
DrawText(g);
}
}
}
protected override void OnMouseEnter(EventArgs e)
{
base.OnMouseEnter(e);
isHover = true;
Refresh();
}
protected override void OnMouseLeave(EventArgs e)
{
base.OnMouseLeave(e);
isHover = false;
Refresh();
}
protected override void OnResize(EventArgs e)
{
base.OnResize(e);
Prepare();
}
private void DrawBackground(Graphics g)
{
g.SetHighQuality();
if (isHover)
{
g.DrawRoundedRectangle(backgroundHoverBrush, borderPen, new Rectangle(0, 0, ClientSize.Width - 1, ClientSize.Height - 1), 2);
}
else
{
g.DrawRoundedRectangle(backgroundBrush, borderPen, new Rectangle(0, 0, ClientSize.Width - 1, ClientSize.Height - 1), 2);
}
}
private void DrawText(Graphics g)
{
TextRenderer.DrawText(g, Text, Font, new Rectangle(ClientRectangle.X, ClientRectangle.Y + 1, ClientRectangle.Width, ClientRectangle.Height + 1), Color.Black);
TextRenderer.DrawText(g, Text, Font, ClientRectangle, ForeColor);
}
protected override void Dispose(bool disposing)
{
if (backgroundBrush != null) backgroundBrush.Dispose();
if (backgroundHoverBrush != null) backgroundHoverBrush.Dispose();
if (borderBrush != null) borderBrush.Dispose();
if (borderPen != null) borderPen.Dispose();
base.Dispose(disposing);
}
}
}

View file

@ -113,9 +113,6 @@
<Compile Include="Controls\BlackStyle\BlackStyleForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Controls\GreenlightButton.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\DoubleLabeledNumericUpDown.cs">
<SubType>UserControl</SubType>
</Compile>