20190313_C#反转绘制字符串
效果图:

代码:
private void button7_Click(object sender, EventArgs e)
{
Point p = new Point(10,10);
Graphics g = this.panel1.CreateGraphics(); // SizeF sf = g.MeasureString("程序员居然不秃头, 你好意思哈", new Font("宋体", 9)); //之所以不使用MeasureString作为字符串的长度测量, 因为它不准
SizeF sf = TextRenderer.MeasureText(g, "程序员居然不秃头, 你好意思哈", new Font("宋体", 9), new Size(0, 0), TextFormatFlags.NoPadding); //获取真实的字符串像素长度 g.DrawString("程序员居然不秃头, 你好意思哈", this.Font, new SolidBrush(Color.Black), p); //画下测试的中心点
g.DrawString(".", new Font("宋体",12,FontStyle.Bold), new SolidBrush(Color.Red), new Point((int)Math.Ceiling(sf.Width / 2), (int)Math.Ceiling(sf.Height / 2))); //将画布中心点平移到尾部
g.TranslateTransform( sf.Width , sf.Height );
//旋转画板
g.RotateTransform(180);
//定点也要对应取负值
g.DrawString("程序员居然不秃头, 你好意思哈", this.Font, new SolidBrush(Color.Blue), new Point(-10, -10)); //回退角度
g.RotateTransform( -180); //回退画板x,y轴移动过的距离
g.TranslateTransform(- sf.Width , - sf.Height); //绘制下看看画笔是否恢复原状
g.DrawImage(Image.FromFile(@"C:\Users\WXY\Pictures\MM\155.jpg"), new Point(50, 50));
}
注意 g 的释放
20190313_C#反转绘制字符串的更多相关文章
- [C#绘图]在半透明矩形上绘制字符串
首先要绘制一个半透明的矩形,用到的方法当然是FillRectangle().这个函数在调用的时候除了要指明要绘制的矩形外,还要指明填充矩形的背景色.具体的方法就是在绘制矩形的时候传给它一个画刷Brus ...
- 每天一个JavaScript实例-递归实现反转数组字符串
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- html5绘制字符串
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head> < ...
- Golang之字符串操作(反转中英文字符串)
//字符串反转package main import "fmt" func reverse(str string) string { var result string strLe ...
- 使用位运算、值交换等方式反转java字符串-共四种方法
在本文中,我们将向您展示几种在Java中将String类型的字符串字母倒序的几种方法. StringBuilder(str).reverse() char[]循环与值交换 byte循环与值交换 apa ...
- javascript 字符串反转 strip_tags 字符串常用的自定义函数,加载css etc.
字符串反转 String.prototype.reverse = function() { var a = this.split(''); for (var i = 0, j = a.length-1 ...
- 自定义View绘制字符串
import android.app.Activity; import android.os.Bundle; import android.view.Display; import android.v ...
- 绘制字符串:imagestring()
<?php //1. 绘制图像资源(创建一个画布) $image = imagecreatetruecolor(500, 300); //2. 先分配一个绿色 $green = imagecol ...
- python 反转一个字符串
old_str = 'abcd' new_str1 = old_str[::-1] print(new_str1) new_str2 = ''.join(reversed(old_str)) prin ...
随机推荐
- SpringBoot全局异常处理方式
每个项目全局异常处理非常重要, 今天在处理项目架构的时候添加了一个全局异常处理. 大概三种异常情况: 一:在进入Controller之前,譬如请求一个不存在的地址,404错误. 二:在执行@Reque ...
- App6种常见的数据加载设计
App6种常见的数据加载设计 设计师在进行APP设计的设计时,往往会更加专注于界面长什么样,界面和界面之间怎么跳转,给予用户什么样的操作反馈,却偏偏特别容易忽略掉一个比较重要的环节,就是APP数据加载 ...
- 002PHP文件处理——文件处理 is_dir mkdir getcwd chdir rmdir
<?php /** * 66 文件处理 is_dir mkdir getcwd chdir rmdir */ //is_dir() 判断一个目录是否存在 //var_dump(is_dir('6 ...
- POJ 3126 Prime Path 广度优先搜索 难度:0
http://poj.org/problem?id=3126 搜索的时候注意 1:首位不能有0 2:可以暂时有没有出现在目标数中的数字 #include <cstdio> #include ...
- Java——抽象类、接口
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
- Maven入门-1.介绍及搭建开发环境
1.介绍1.1 Maven和Ant的比较?2.搭建Maven开发环境2.1 配置环境变量2.2 测试安装是否成功2.3 配置Maven的本地仓库位置3.Maven的约定4.Maven项目类型5.Mav ...
- android 知识小结-1
Java哪些数据结构是线程安全的,CurrentHashMap的原理 ConcurrentHashMap.ConcurrentSkipListMap.ConcurrentSkipListSet.Con ...
- 流程设计器jQuery + svg/vml(Demo1 - 构建设计器UI界面)
之前用Silverlight实现过一个流程设计器(Demo),使用起来不是很方便.打算参考GooFlow,结合自己对工作流的理解,用jQuery改造实现一个,力求简单实用. 第一步是要构建设计器的UI ...
- [置顶]
VS 2017 众多重构插件
孙广东 2017.7.22 http://blog.csdn.NET/u010019717 1.没有任何插件的情况下: (就是Ctrl + .) 注意:这个. 要是英文的才行! 右键菜单也是 ...
- Locust 关联
关联的概念 用户登入后,服务器通常会给用户返回一个sessionID, 用户每次登陆,服务器返回的都会不同. 那么在自动化测试中,让系统自动登入账号就会被中断.那么我们可以通过取得服务器每次返回的se ...