C#以两种方法实现文字阴影效果,同时还实现了简单的动画效果:
一种是对文本使用去锯齿的边缘处理,在两个不同的位置绘制文本,形成阴影;
另一个是以阴影为线条,构造影线画刷,先画背景再画前景,使用graphics.DrawString来绘制文字的阴影。
实现效果如下:
啥也不说了、直接上代码,源码中有注释:
using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Drawing2D; using System.Linq; using System.Windows.Forms; namespace Guying.Project.DrawFontShadow { public partial class FrmMain : Form { public FrmMain() { InitializeComponent(); } protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Graphics graphics = e.Graphics; graphics.Clear(Color.White); //对文本使用去锯齿的边缘处理 FontFamily fontFamily = new FontFamily("宋体"); Font font = , FontStyle.Bold, GraphicsUnit.Pixel); //文本输出框 RectangleF textout = , this.ClientSize.Width, this.ClientSize.Height); //在两个不同的位置绘制文本,形成阴影 //solidBrush的色彩透明度为100,暗黑 SolidBrush solidBrush = , Color.Black)); SolidBrush redBrush = new SolidBrush(Color.Blue); graphics.DrawString("孤影", font, solidBrush, new PointF(27.0f, 27.0f)); graphics.DrawString("孤影", font, redBrush, new PointF(12.0f, 20.0f)); //另一种阴影字,阴影为线条 //构造影线画刷 HatchBrush brush_tmp = new HatchBrush( HatchStyle.DarkDownwardDiagonal, Color.Black, Color.White); ; //先画背景 ; i < reptime; i++) graphics.DrawString("您好", font, brush_tmp, , textout.Y + i + )); //再画前景 graphics.DrawString("您好", font, Brushes.Blue, new PointF(textout.X, textout.Y)); } }
使用Graphics绘制字体阴影
【来自:[LonelyShadow 博客] http://www.cnblogs.com/LonelyShadow】
WinForms 使用Graphics绘制字体阴影的更多相关文章
-
【转】WinForms 使用Graphics绘制字体阴影
转自:http://www.cnblogs.com/LonelyShadow/p/3893743.html C#以两种方法实现文字阴影效果,同时还实现了简单的动画效果: 一种是对文本使用去锯齿的边缘处 ...
-
解决html5 canvas 绘制字体、图片与图形模糊问题
html5 canvas 绘制字体.图片与图形模糊问题 发生情况 多出现在高dpi设备,这意味着每平方英寸有更多的像素,如手机,平板电脑.当然很多高端台式电脑也有高分辨率高dpi的显示器. canva ...
-
wpf设置字体颜色渐变和字体阴影
<StackPanel Orientation="Horizontal" Grid.Column="1" HorizontalAlignment=&quo ...
-
iOS圆角view的Swift实现(利用Core Graphics绘制)
iOS圆角view的Swift实现(利用Core Graphics绘制) 因为app的列表用用到了圆形图片的头像,所以去探究并思考了一下这个问题.首先这个问题有两个方向的解决方案: 把图片弄成圆形的. ...
-
css 字体阴影和边框阴影
字体阴影 text-shadow: 2px 2px 2px #7a7e81; 边框阴影 box-shadow: 2px 2px 2px #7a7e81;
-
解决C# WinForm Graphics绘制闪烁问题
不直接使用form的CreateGraphics创建Graphics进行绘制,可以先在Form上面放一个需要大小的PictureBox,再创建一个同大小的Bitmap,将这个Bitmap设置为Pict ...
-
css3 text-shadow字体阴影讲解
text-shadow:为字体添加阴影, 可以通过对text-shadow属性设置相关的属性值,来实现现一些需要的字体阴影效果,减少了图片的使用. 基础说明: text-shadow: X轴 ...
-
C#一例绘制字体不清晰的解决办法
public static Bitmap GetPieWithText(String text, Color color, Color fontColor,Font font) { ; Bitmap ...
-
Graphics绘制类及打印机设置相关
Graphics 有两个多个方法 这里面介绍3个: 1.Graphics.drawString():绘制.画字符串........... e.Graphics.DrawString("新乡市 ...
随机推荐
-
SQL 字符替换
--匹配所有字符替换 )),'被替换','替换') --匹配给定位子替换 update 表名 set 列=stuff(列名,从一开始数位数,往后数几位,替换)
-
Computation expressions: Introduction
本文仅为对原文的翻译,主要是记录以方便以后随时查看.原文地址为http://fsharpforfunandprofit.com/posts/computation-expressions-intro/ ...
-
vue结构详解
相关文件和文件夹的含义: build 文件夹: 里面是对 webpack 开发和打包的相关设置,包括入口文件.输出文件.使用的模块等:config 文件夹: 主要是指定开发和打包中的静态资源路径.要压 ...
-
MySQL中 指定字段排序函数field()的用法
MySQL中的field()函数,可以用来对SQL中查询结果集进行指定顺序排序. 函数使用格式如下: order by (str,str1,str2,str3,str4……),str与str1,str ...
-
Python之旅Day4 闭包函数 模块及模块倒入
闭包函数 闭包函数就是在内部函数当中有对外部函数名字的引用 ###代码示例1### def f1(): x =1 def f2(): print(x) return f2 f=f1() f() ### ...
-
php输出年份
Copyright <?php echo date('Y');?> by Creditease Corp.All Right Reserved.
-
Windows Server2003 IIS服务器安全配置整理
一.系统的安装 1.按照Windows2003安装光盘的提示安装,默认情况下2003没有把IIS6.0安装在系统里面.2.IIS6.0的安装 开始菜单—>控制面板—>添加或删除程序—& ...
-
Fisher准则一维聚类
在做FAQ系统时,用户输入一个查询之后,返回若干个打好分数的文档.对于这些文档,有些是应该输出的,有些是不应该输出的.那么应该在什么地方截断呢? 这个问题其实是一个聚类问题,在一维空间中把若干个点聚成 ...
-
VUE系列三:实现跨域请求(fetch/axios/proxytable)
1. 在 config/index.js 配置文件中配置proxyTable 'use strict' // Template version: 1.3.1 // see http://vuejs-t ...
-
Oracle11g常用数据字典
转:https://blog.csdn.net/fulq1234/article/details/79760698 Oracle数据字典的名称由前缀和后缀组成,使用_连接,含义说明如下: dba_:包 ...