原文:
设置XtraForm标题居中
public class CustomFormPainter : FormPainter { public CustomFormPainter(Control owner, DevExpress.Skins.ISkinProvider provider) : base(owner, provider) { } protected override void DrawText(DevExpress.Utils.Drawing.GraphicsCache cache) { string text = Text; if (text == null || text.Length == 0 || TextBounds.IsEmpty) return; using (AppearanceObject appearance = new AppearanceObject(GetDefaultAppearance())) { appearance.TextOptions.Trimming = Trimming.EllipsisCharacter; appearance.TextOptions.HAlignment = HorzAlignment.Center; appearance.Font = new Font(appearance.Font.Name, 30, FontStyle.Bold, appearance.Font.Unit, appearance.Font.GdiCharSet, appearance.Font.GdiVerticalFont); if (AllowHtmlDraw) { DrawHtmlText(cache, appearance); return; } Rectangle r = RectangleHelper.GetCenterBounds(TextBounds, new Size(TextBounds.Width, CalcTextHeight(cache.Graphics, appearance))); DrawTextShadow(cache, appearance, r); cache.DrawString(text, appearance.Font, appearance.GetForeBrush(cache), r, appearance.GetStringFormat()); } } }
这样用
public partial class frmMain : DevExpress.XtraEditors.XtraForm { static frmMain() { SkinManager.EnableFormSkins(); } public frmMain() { InitializeComponent(); } protected override FormPainter CreateFormBorderPainter() { return new CustomFormPainter(this, LookAndFeel); } }