转自:http://www.cnblogs.com/LonelyShadow/p/3893743.html

C#以两种方法实现文字阴影效果,同时还实现了简单的动画效果:
  一种是对文本使用去锯齿的边缘处理,在两个不同的位置绘制文本,形成阴影;
  另一个是以阴影为线条,构造影线画刷,先画背景再画前景,使用graphics.DrawString来绘制文字的阴影。

实现效果如下:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.Drawing.Drawing2D;
  5. using System.Linq;
  6. using System.Windows.Forms;
  7.  
  8. namespace Guying.Project.DrawFontShadow
  9. {
  10. public partial class FrmMain : Form
  11. {
  12. public FrmMain()
  13. {
  14. InitializeComponent();
  15. }
  16.  
  17. protected override void OnPaint(PaintEventArgs e)
  18. {
  19. base.OnPaint(e);
  20. Graphics graphics = e.Graphics;
  21. graphics.Clear(Color.White);
  22. //对文本使用去锯齿的边缘处理
  23. FontFamily fontFamily = new FontFamily("宋体");
  24. Font font = new Font(fontFamily, , FontStyle.Bold, GraphicsUnit.Pixel);
  25. //文本输出框
  26. RectangleF textout = new RectangleF(font.Height, this.ClientSize.Height / , this.ClientSize.Width, this.ClientSize.Height);
  27. //在两个不同的位置绘制文本,形成阴影
  28. //solidBrush的色彩透明度为100,暗黑
  29. SolidBrush solidBrush = new SolidBrush(Color.FromArgb(, Color.Black));
  30. SolidBrush redBrush = new SolidBrush(Color.Blue);
  31. graphics.DrawString("孤影", font, solidBrush,
  32. new PointF(27.0f, 27.0f));
  33. graphics.DrawString("孤影", font, redBrush,
  34. new PointF(12.0f, 20.0f));
  35. //另一种阴影字,阴影为线条
  36. //构造影线画刷
  37. HatchBrush brush_tmp = new HatchBrush(
  38. HatchStyle.DarkDownwardDiagonal, Color.Black, Color.White);
  39. int reptime = ;
  40. //先画背景
  41. for (int i = ; i < reptime; i++)
  42. graphics.DrawString("您好", font, brush_tmp,
  43. new PointF(textout.X + i + , textout.Y + i + ));
  44. //再画前景
  45. graphics.DrawString("您好", font, Brushes.Blue, new PointF(textout.X, textout.Y));
  46. }
  47. }
  48.  
  49. 使用Graphics绘制字体阴影

【转】WinForms 使用Graphics绘制字体阴影的更多相关文章

  1. WinForms 使用Graphics绘制字体阴影

    C#以两种方法实现文字阴影效果,同时还实现了简单的动画效果: 一种是对文本使用去锯齿的边缘处理,在两个不同的位置绘制文本,形成阴影: 另一个是以阴影为线条,构造影线画刷,先画背景再画前景,使用grap ...

  2. 解决html5 canvas 绘制字体、图片与图形模糊问题

    html5 canvas 绘制字体.图片与图形模糊问题 发生情况 多出现在高dpi设备,这意味着每平方英寸有更多的像素,如手机,平板电脑.当然很多高端台式电脑也有高分辨率高dpi的显示器. canva ...

  3. wpf设置字体颜色渐变和字体阴影

    <StackPanel Orientation="Horizontal" Grid.Column="1" HorizontalAlignment=&quo ...

  4. iOS圆角view的Swift实现(利用Core Graphics绘制)

    iOS圆角view的Swift实现(利用Core Graphics绘制) 因为app的列表用用到了圆形图片的头像,所以去探究并思考了一下这个问题.首先这个问题有两个方向的解决方案: 把图片弄成圆形的. ...

  5. css 字体阴影和边框阴影

    字体阴影 text-shadow: 2px 2px 2px #7a7e81; 边框阴影 box-shadow: 2px 2px 2px #7a7e81;

  6. 解决C# WinForm Graphics绘制闪烁问题

    不直接使用form的CreateGraphics创建Graphics进行绘制,可以先在Form上面放一个需要大小的PictureBox,再创建一个同大小的Bitmap,将这个Bitmap设置为Pict ...

  7. css3 text-shadow字体阴影讲解

    text-shadow:为字体添加阴影, 可以通过对text-shadow属性设置相关的属性值,来实现现一些需要的字体阴影效果,减少了图片的使用. 基础说明:    text-shadow: X轴  ...

  8. C#一例绘制字体不清晰的解决办法

    public static Bitmap GetPieWithText(String text, Color color, Color fontColor,Font font) { ; Bitmap ...

  9. Graphics绘制类及打印机设置相关

    Graphics 有两个多个方法 这里面介绍3个: 1.Graphics.drawString():绘制.画字符串........... e.Graphics.DrawString("新乡市 ...

随机推荐

  1. Kubernetes-----Endpoints

    Endpoints是实现实际服务的端点集合. Kubernetes在创建Service时,根据Service的标签选择器(Label Selector)来查找Pod,据此创建与Service同名的En ...

  2. echarts.js使用心得--demo

    首先要感谢一下我的公司,因为公司需求上面的新颖(奇葩)的需求,让我有幸可以学习到一些好玩有趣的前端技术. 废话不多时 , 直接开始. 第一步: 导入echarts.js文件 下载地址:http://e ...

  3. 如何成为优秀评级卖家(Top-rated seller)?与超级卖家的区别是

    以eBay美国站点为例,要成为优秀评级卖家(Top-rated seller),需满足如下条件: ● 先成为 eBay超级卖家 ● Low DSR (US buyers) <= 0.50% 或 ...

  4. python3【基础】-list&tuple

    一.list概述 list (列表)是python中最常用的数据类型之一,通过列表可以对数据实现最方便的存储,修改等操作.在python3中,list支持如下方法: Help on class lis ...

  5. Centos 关闭图形界面

    查看/etc/inittab如下: # systemd uses 'targets' instead of runlevels. # by default, there are two main ta ...

  6. 基于DPDK的高效数据包捕获技术分析与应用

    被NFV的论文折磨了两天,今天上午看了两篇DPDK的综述. 传统的包捕获机制 1. BPF 两个组成部分:转发部分和过滤部分. 转发部分负责从链路层提取数据包并转发给过滤部分. 过滤部分根据过滤规则, ...

  7. vsftpd 安全性能工具

    vsftpd实战(服务端192.168.23.12,客户端192.168.23.11) 1:安装vsftpdyum install -y vsftpd 2:客户端安装lftpyum install - ...

  8. 【Leetcode】72 Edit Distance

    72. Edit Distance Given two words word1 and word2, find the minimum number of steps required to conv ...

  9. [转帖]IBM收购Red Hat

    来源cnbeta:https://www.cnbeta.com/articles/tech/782009.htm 2018年10月28 日,IBM 宣布收购 Linux 巨头 Red Hat.公告中称 ...

  10. sublime text 多行代码注释快捷键

    多行选择后按下ctrl+/ 选择类 Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本. Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑.举个栗子:快速选中 ...