C# GDI+ 文字 阴影,描边 的实现
好的,各位RT 这次是简单的 C# GDI+ 文字描边的实现。。。。
这次不使用先进的东西。。。。
先看效果图,如下:
当然,你自己动手做出的效果我想会更好。我只是抛砖引玉而已,呵呵。

this.Paint += Form1_Paint;//这个写在Form_load事件里面 void Form1_Paint(object sender, PaintEventArgs e) { //Graphics g = e.Graphics; //string s = "Outline"; //RectangleF rect = this.ClientRectangle; //Font font = this.Font; //StringFormat format = StringFormat.GenericTypographic; //float dpi = g.DpiY; //using (GraphicsPath path= GetStringPath(s, dpi, rect, font, format)) //{ // g.DrawPath(Pens.Black, path); //} Graphics g = e.Graphics; string s = "宋体宋体宋体宋体宋体宋体宋体宋体宋体"; RectangleF rect = new RectangleF(350, 0,400,200); Font font = this.Font; StringFormat format = StringFormat.GenericTypographic; float dpi = g.DpiY; using (GraphicsPath path = GetStringPath(s, dpi, rect, font, format)) { //阴影代码 //RectangleF off = rect; //off.Offset(5, 5);//阴影偏移 //using (GraphicsPath offPath = GetStringPath(s, dpi, off, font, format)) //{ // Brush b = new SolidBrush(Color.FromArgb(100, 0, 0, 0)); // g.FillPath(b, offPath); // b.Dispose(); //} g.SmoothingMode = SmoothingMode.AntiAlias;//设置字体质量 g.DrawPath(Pens.Black, path);//绘制轮廓(描边) g.FillPath(Brushes.White, path);//填充轮廓(填充) } } GraphicsPath GetStringPath(string s, float dpi, RectangleF rect, Font font, StringFormat format) { GraphicsPath path = new GraphicsPath(); // Convert font size into appropriate coordinates float emSize = dpi * font.SizeInPoints / 72; path.AddString(s, font.FontFamily, (int)font.Style, emSize, rect, format); return path; }
需要阴影的同学 上面的注释去掉就ok。
好吧。没啥可说的,很多人都会。
欢迎交流。。。
by cnblogs Soar
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~