Added DarkLabel

This commit is contained in:
Robin 2015-09-18 10:03:24 +01:00
parent 7e94c286d7
commit 4d5bf78403
2 changed files with 95 additions and 0 deletions

View File

@ -0,0 +1,92 @@
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
namespace DarkUI
{
public class DarkLabel : Label
{
#region Field Region
private bool _autoUpdateHeight;
private bool _isGrowing;
#endregion
#region Property Region
[Category("Appearance")]
[Description("Determines whether the label will automatically update height based on content.")]
[DefaultValue(false)]
public bool AutoUpdateHeight
{
get { return _autoUpdateHeight; }
set
{
_autoUpdateHeight = value;
if (_autoUpdateHeight)
{
AutoSize = false;
ResizeLabel();
}
}
}
#endregion
#region Constructor Region
public DarkLabel()
{
ForeColor = Colors.LightText;
}
#endregion
#region Method Region
private void ResizeLabel()
{
if (!_autoUpdateHeight || _isGrowing)
return;
try
{
_isGrowing = true;
var sz = new Size(Width, int.MaxValue);
sz = TextRenderer.MeasureText(Text, Font, sz, TextFormatFlags.WordBreak);
Height = sz.Height + Padding.Vertical;
}
finally
{
_isGrowing = false;
}
}
#endregion
#region Event Handler Region
protected override void OnTextChanged(EventArgs e)
{
base.OnTextChanged(e);
ResizeLabel();
}
protected override void OnFontChanged(EventArgs e)
{
base.OnFontChanged(e);
ResizeLabel();
}
protected override void OnSizeChanged(EventArgs e)
{
base.OnSizeChanged(e);
ResizeLabel();
}
#endregion
}
}

View File

@ -43,6 +43,9 @@
<Compile Include="Controls\DarkButton.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\DarkLabel.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\DarkMenuStrip.cs">
<SubType>Component</SubType>
</Compile>