原文:
设置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); } }