【编程随笔】C# 重写OnPaint实现 控件 Text 居中显示

借鉴文章


 必备类库

using System;
using System.Drawing;
using System.Windows.Forms;
using System.ComponentModel;

 重载控件的话,应该都有、都有。

 代码示例

protected override void OnPaint(PaintEventArgs e)
{
    base.OnPaint(e);

    Graphics g = e.Graphics;
    g.Clear(this.BackColor);

    SolidBrush brush = new SolidBrush(this.ForeColor);
    string text = this.Text;
    var size = g.MeasureString(text, this.Font);

    for (int i = 1; i <= text.Length; i++)
    {
        if (size.Width / i < this.Width)
        {
            if (text.Length % i == 0)
            {
                for (int j = 0; j < i; j++)
                {
                    string str = text.Substring(j * text.Length / i, text.Length / i);
                    var subSize = g.MeasureString(str, this.Font);

                    g.DrawString(str, thi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值