winform桌面应用程序(.Net Framework)文本描边效果实现

20 篇文章 16 订阅

一、前言

有这样一个需求,在winform桌面应程序中显示的文本要有描边效果,正常Label是不带描边效果的,如下:
在这里插入图片描述
这个需要对Label进行拓展,最终效果如下:
在这里插入图片描述
本文就介绍下具体实现。

二、添加类,拓展Label描边效果

右键工程,点击菜单 添加 - 类
在这里插入图片描述
类名比如叫LabelExt,点击添加。
在这里插入图片描述
代码如下:

using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;

namespace OutlineLabelDemo
{
    class LabelExt : Label
    {
        /// <summary>
        /// 边宽
        /// </summary>
        public int BorderWidth { get; set; } = 1;
        /// <summary>
        /// 边颜色
        /// </summary>
        public Color BorderColor { get; set; } = Color.White;


        protected override void OnPaint(PaintEventArgs e)
        {
            DrawText(e.Graphics);
        }

        private void DrawText(Graphics g)
        {
            g.FillRectangle(new SolidBrush(BackColor), ClientRectangle);
            using (GraphicsPath gp = new GraphicsPath())
            using (Pen outline = new Pen(BorderColor, BorderWidth)
            { LineJoin = LineJoin.Round })
            using (StringFormat sf = new StringFormat())
            using (Brush foreBrush = new SolidBrush(ForeColor))
            {
                gp.AddString(Text, Font.FontFamily, (int)Font.Style,
                    Font.Size, ClientRectangle, sf);
                g.ScaleTransform(1.3f, 1.35f);
                g.SmoothingMode = SmoothingMode.HighQuality;
                g.DrawPath(outline, gp);
                g.FillPath(foreBrush, gp);
            }
        }
    }
}

三、重新生成解决方案

点击菜单 生成 - 重新生成解决方案
在这里插入图片描述
生成成功后,即可在工具箱中看到我们的LabelExt了。
在这里插入图片描述

四、使用LabelExt

将LabelExt拖到窗口中。
在这里插入图片描述
编辑描边属性。
在这里插入图片描述
效果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林新发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值