📄 xlabel1.cs
字号:
namespace Imps.Client.Pc.Controls
{
using System;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Design;
using System.Runtime.InteropServices;
using System.Windows.Forms;
[DefaultProperty("Text"), DefaultBindingProperty("Text"), ClassInterface(ClassInterfaceType.AutoDispatch), ComVisible(true)]
public class XLabel1 : XControlBase
{
private bool _autoEllipsis;
private ContentAlignment _textAlign = ContentAlignment.TopLeft;
private bool _useMnemonic;
private int paint;
protected override void AdjustSize()
{
if (this.get_AutoSize() || (((this.Anchor & (AnchorStyles.Right | AnchorStyles.Left)) != (AnchorStyles.Right | AnchorStyles.Left)) && ((this.Anchor & (AnchorStyles.Bottom | AnchorStyles.Top)) != (AnchorStyles.Bottom | AnchorStyles.Top))))
{
try
{
Size size = base.Size;
if (this.get_AutoSize())
{
if (base.Parent == null)
{
return;
}
base.Parent.CreateGraphics();
Size size2 = TextRenderer.MeasureText(this.Text, this.Font);
size2.Width += 2;
if (this.BorderStyle == BorderStyle.Fixed3D)
{
size2.Height += 4;
size2.Width += 4;
}
if (this.BorderStyle == BorderStyle.FixedSingle)
{
size2.Height += 2;
size2.Width += 2;
}
size2.Width += base.get_Padding().get_Left() + base.get_Padding().get_Right();
size2.Height += base.get_Padding().get_Top() + base.get_Padding().get_Bottom();
if (size2.Width > base.Width)
{
size.Width = Convert.ToInt32(size2.Width);
}
else if (this.get_AutoSize())
{
size.Width = Convert.ToInt32(size2.Width);
}
if (size2.Height > base.Height)
{
size.Height = Convert.ToInt32(size2.Height);
}
else if (this.get_AutoSize())
{
size.Height = Convert.ToInt32(size2.Height);
}
}
if (size != base.Size)
{
base.Size = size;
}
}
catch (Exception)
{
}
}
}
protected override void OnAutoSizeChanged(EventArgs e)
{
base.OnAutoSizeChanged(e);
this.AdjustSize();
base.Invalidate();
}
protected override void OnForeColorChanged(EventArgs e)
{
base.OnForeColorChanged(e);
this.AdjustSize();
base.Invalidate();
}
protected override void OnPaddingChanged(EventArgs e)
{
base.OnPaddingChanged(e);
this.AdjustSize();
base.Invalidate();
}
protected override void OnPaintControl(PaintEventArgs e)
{
base.OnPaintControl(e);
Rectangle rectangle = XControlHelper.GetWorkRectangle(e.ClipRectangle, base.get_Padding(), this.BorderStyle);
TextFormatFlags textFormat = this.TextFormat;
if (base.Enabled)
{
TextRenderer.DrawText((IDeviceContext) e.Graphics, this.Text, this.Font, rectangle, this.ForeColor, textFormat);
}
else
{
ControlPaint.DrawStringDisabled((IDeviceContext) e.Graphics, this.Text, this.Font, this.BackColor, rectangle, textFormat);
}
}
protected override void OnParentChanged(EventArgs e)
{
base.OnParentChanged(e);
}
protected override void OnSizeChanged(EventArgs e)
{
base.OnSizeChanged(e);
this.AdjustSize();
}
protected override void OnStyleChanged(EventArgs e)
{
base.OnStyleChanged(e);
this.AdjustSize();
base.Invalidate();
}
protected override void OnTextChanged(EventArgs e)
{
base.OnTextChanged(e);
this.AdjustSize();
base.Invalidate();
}
[Category("行为"), Description("扩展到标签以外的样式处理")]
public virtual bool AutoEllipsis
{
get
{
return this._autoEllipsis;
}
set
{
this._autoEllipsis = value;
base.Invalidate();
}
}
[DefaultValue(false), EditorBrowsable(EditorBrowsableState.Always), RefreshProperties(RefreshProperties.All), Localizable(true), Browsable(true), Category("布局"), Description("是否自动调整大小"), DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public override bool AutoSize
{
get
{
return base.get_AutoSize();
}
set
{
if (this.get_AutoSize() != value)
{
base.set_AutoSize(value);
}
}
}
[SettingsBindable(true), Editor("System.ComponentModel.Design.MultilineStringEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]
public override string Text
{
get
{
return base.Text;
}
set
{
base.Text = value;
}
}
[Category("外观"), Description("确认标签中文本的位置")]
public ContentAlignment TextAlign
{
get
{
return this._textAlign;
}
set
{
if (this._textAlign != value)
{
this._textAlign = value;
base.Invalidate();
}
}
}
internal TextFormatFlags TextFormat
{
get
{
TextFormatFlags flags = this.AutoEllipsis ? ((TextFormatFlags) 0x8000) : ((TextFormatFlags) 0x10);
ContentAlignment textAlign = this.TextAlign;
if (textAlign <= ContentAlignment.MiddleCenter)
{
switch (textAlign)
{
case ContentAlignment.TopLeft:
return flags;
case ContentAlignment.TopCenter:
flags = flags;
return (flags | 1);
case (ContentAlignment.TopCenter | ContentAlignment.TopLeft):
return flags;
case ContentAlignment.TopRight:
flags = flags;
return (flags | 2);
case ContentAlignment.MiddleLeft:
return (flags | 4);
case ContentAlignment.MiddleCenter:
flags |= 4;
return (flags | 1);
}
return flags;
}
if (textAlign <= ContentAlignment.BottomLeft)
{
switch (textAlign)
{
case ContentAlignment.MiddleRight:
flags |= 4;
return (flags | 2);
case ContentAlignment.BottomLeft:
return (flags | 8);
}
return flags;
}
if (textAlign != ContentAlignment.BottomCenter)
{
if (textAlign != ContentAlignment.BottomRight)
{
return flags;
}
}
else
{
flags |= 8;
return (flags | 1);
}
flags |= 8;
return (flags | 2);
}
}
[Description("如果为true,则内容里&后面文本会作为辅助键!暂时还没有实现 FMJ"), Category("外观")]
public bool UseMnemonic
{
get
{
return this._useMnemonic;
}
set
{
this._useMnemonic = value;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -