Да, вы можете просто добавить его. Встроенное перечисление называется ContentAlignment
:
using System.ComponentModel;
using System.Windows.Forms;
public class newControl : Control {
private ContentAlignment _TextAlign = ContentAlignment.MiddleCenter;
[Description("The alignment of the text that will be displayed on the control.")]
[DefaultValue(typeof(ContentAlignment), "MiddleCenter")]
public ContentAlignment TextAlign {
get { return _TextAlign; }
set { _TextAlign = value; }
}
}
То, что вы делаете с этим свойством, теперь зависит от вас.
Обратите внимание, что я добавил некоторые атрибуты для использования элемента управления в PropertyGrid
. Атрибут DefaultValue
не устанавливает значение свойства, он просто определяет, будет ли свойство выделено жирным шрифтом или нет.
Чтобы отобразить текст с использованием свойства TextAlign
, вам необходимо переопределить метод OnPaint
и нарисовать его:
protected override void OnPaint(PaintEventArgs e) {
switch (_TextAlign) {
case ContentAlignment.MiddleCenter: {
TextRenderer.DrawText(e.Graphics, this.Text, this.Font, this.ClientRectangle, this.ForeColor, Color.Empty,
TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter);
break;
}
case ContentAlignment.MiddleLeft: {
TextRenderer.DrawText(e.Graphics, this.Text, this.Font, this.ClientRectangle, this.ForeColor, Color.Empty,
TextFormatFlags.Left | TextFormatFlags.VerticalCenter);
break;
}
// more case statements here for all alignments, etc.
}
base.OnPaint(e);
}