C# Graphics绘图 picBox
需求:

Bitmap bm = new Bitmap(picboxPreview.Width, picboxPreview.Height);
using (Graphics g = Graphics.FromImage(bm))
{
//绘制外面的矩形边框
Pen pen = new Pen(Color.Black, 2.0f);
g.DrawRectangle(pen, new Rectangle(new Point(, ), picboxPreview.Size));
//绘制左边的位图
if (cbxPhoto.CheckedStatus && picboxPhoto.Image != null)
{
g.DrawImage(picboxPhoto.Image, new Rectangle(new Point(, ), new Size(picboxPreview.Height - , picboxPreview.Height - )));
}
//绘制右边的位图
if (cbxLogo.CheckedStatus && picboxLogo.Image != null)
{
g.DrawImage(picboxLogo.Image, new Rectangle(new Point(picboxPreview.Width - (picboxPreview.Height - ) - , ), new Size(picboxPreview.Height - , picboxPreview.Height - )));
}
//绘制Name、Designation、Department、Institution/Company
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
Font fA = new Font("Arial", , FontStyle.Bold);
Font fB = new Font("Arial", , FontStyle.Regular);
//1.绘制4行 Name Designation Department Institution/Company
//2.绘制3行 Name Designation Department
//3. Name Designation Institution/Company
//4 Name Department Institution/Company
//5 Designation Department Institution/Company
//6.绘制2行 Name Designation
//7 Name Department
//8 Name Institution/Company
//9 Designation Department
//10 Designation Institution/Company
//11 Department Institution/Company
//12.绘制1行Name
//13. Designation
//14. Department
//15. Institution/Company
bool EnableName = cbxName.CheckedStatus && !string.IsNullOrEmpty(txtName.Text.Trim());
bool EnableDesignation = cbxDesignation.CheckedStatus && !string.IsNullOrEmpty(txtDesignation.Text.Trim());
bool EnableDepartment = cbxDepartment.CheckedStatus && !string.IsNullOrEmpty(txtDepartment.Text.Trim());
bool EnableInstitution = cbxInstitution.CheckedStatus && !string.IsNullOrEmpty(txtInstitution.Text.Trim());
//float drawX;
float drawY;
SizeF sizefName = g.MeasureString(txtName.Text.Trim(), new Font("Arial", , FontStyle.Bold));
SizeF sizefDesignation = g.MeasureString(txtDesignation.Text.Trim(), new Font("Arial", , FontStyle.Regular));
SizeF sizefDepartment = g.MeasureString(txtDepartment.Text.Trim(), new Font("Arial", , FontStyle.Regular));
SizeF sizefInstitution = g.MeasureString(txtInstitution.Text.Trim(), new Font("Arial", , FontStyle.Regular));
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
bool EnableRows = EnableName && EnableDesignation && EnableDepartment && EnableInstitution;
if (EnableName && EnableDesignation && EnableDepartment && EnableInstitution)
{//1.绘制4行 Name Designation Department Institution/Company
drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / ;
DrawStringOfName(g, sizefName, drawY); drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / + sizefName.Height;
DrawStringOfDesignation(g, sizefDesignation, drawY); drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / + sizefName.Height + sizefDesignation.Height;
DrawStringOfDepartment(g, sizefDepartment, drawY); drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / + sizefName.Height + sizefDesignation.Height + sizefDepartment.Height;
DrawStringOfInstitution(g, sizefInstitution, drawY);
}
else if (!EnableName && EnableDesignation && EnableDepartment && EnableInstitution)
{
drawY = (picboxPreview.Height - (sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / ;
DrawStringOfDesignation(g, sizefDesignation, drawY); drawY = (picboxPreview.Height - (sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / + sizefDesignation.Height;
DrawStringOfDepartment(g, sizefDepartment, drawY); drawY = (picboxPreview.Height - (sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / + sizefDesignation.Height + sizefDepartment.Height;
DrawStringOfInstitution(g, sizefInstitution, drawY);
}
else if (EnableName && !EnableDesignation && EnableDepartment && EnableInstitution)
{
drawY = (picboxPreview.Height - (sizefName.Height + sizefDepartment.Height + sizefInstitution.Height)) / ;
DrawStringOfName(g, sizefName, drawY); drawY = (picboxPreview.Height - (sizefName.Height + sizefDepartment.Height + sizefInstitution.Height)) / + sizefName.Height;
DrawStringOfDepartment(g, sizefDepartment, drawY); drawY = (picboxPreview.Height - (sizefName.Height + sizefDepartment.Height + sizefInstitution.Height)) / + sizefName.Height + sizefDepartment.Height;
DrawStringOfInstitution(g, sizefInstitution, drawY);
}
else if (EnableName && EnableDesignation && !EnableDepartment && EnableInstitution)
{
drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefInstitution.Height)) / ;
DrawStringOfName(g, sizefName, drawY); drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefInstitution.Height)) / + sizefName.Height;
DrawStringOfDesignation(g, sizefDesignation, drawY); drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefInstitution.Height)) / + sizefName.Height + sizefDesignation.Height;
DrawStringOfInstitution(g, sizefInstitution, drawY);
}
else if (EnableName && EnableDesignation && EnableDepartment && !EnableInstitution)
{
drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height)) / ;
DrawStringOfName(g, sizefName, drawY); drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height)) / + sizefName.Height;
DrawStringOfDesignation(g, sizefDesignation, drawY); drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height)) / + sizefName.Height + sizefDesignation.Height;
DrawStringOfDepartment(g, sizefDepartment, drawY);
}
else if (!EnableName && !EnableDesignation && EnableDepartment && EnableInstitution)
{
drawY = (picboxPreview.Height - (sizefDepartment.Height + sizefInstitution.Height)) / ;
DrawStringOfDepartment(g, sizefDepartment, drawY); drawY = (picboxPreview.Height - (sizefDepartment.Height + sizefInstitution.Height)) / + sizefDepartment.Height;
DrawStringOfInstitution(g, sizefInstitution, drawY);
}
else if (!EnableName && EnableDesignation && !EnableDepartment && EnableInstitution)
{
drawY = (picboxPreview.Height - (sizefDesignation.Height + sizefInstitution.Height)) / ;
DrawStringOfDesignation(g, sizefDesignation, drawY); drawY = (picboxPreview.Height - (sizefDesignation.Height + sizefInstitution.Height)) / + sizefDesignation.Height;
DrawStringOfInstitution(g, sizefInstitution, drawY);
}
else if (!EnableName && EnableDesignation && EnableDepartment && !EnableInstitution)
{
drawY = (picboxPreview.Height - (sizefDesignation.Height + sizefDepartment.Height)) / ;
DrawStringOfDesignation(g, sizefDesignation, drawY); drawY = (picboxPreview.Height - (sizefDesignation.Height + sizefDepartment.Height)) / + sizefDesignation.Height;
DrawStringOfDepartment(g, sizefDepartment, drawY);
}
else if (EnableName && !EnableDesignation && !EnableDepartment && EnableInstitution)
{
drawY = (picboxPreview.Height - (sizefName.Height + sizefInstitution.Height)) / ;
DrawStringOfName(g, sizefName, drawY); drawY = (picboxPreview.Height - (sizefName.Height + sizefInstitution.Height)) / + sizefName.Height;
DrawStringOfInstitution(g, sizefInstitution, drawY);
}
else if (EnableName && !EnableDesignation && EnableDepartment && !EnableInstitution)
{
drawY = (picboxPreview.Height - (sizefName.Height + sizefDepartment.Height)) / ;
DrawStringOfName(g, sizefName, drawY); drawY = (picboxPreview.Height - (sizefName.Height + sizefDepartment.Height)) / + sizefName.Height;
DrawStringOfDepartment(g, sizefDepartment, drawY);
}
else if (EnableName && EnableDesignation && !EnableDepartment && !EnableInstitution)
{
drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height)) / ;
DrawStringOfName(g, sizefName, drawY); drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height)) / + sizefName.Height;
DrawStringOfDesignation(g, sizefDesignation, drawY);
}
else if (!EnableName && !EnableDesignation && !EnableDepartment && EnableInstitution)
{
drawY = (picboxPreview.Height - sizefInstitution.Height) / ;
DrawStringOfInstitution(g, sizefInstitution, drawY);
}
else if (!EnableName && !EnableDesignation && EnableDepartment && !EnableInstitution)
{
drawY = (picboxPreview.Height - sizefDepartment.Height) / ;
DrawStringOfDepartment(g, sizefDepartment, drawY);
}
else if (!EnableName && EnableDesignation && !EnableDepartment && !EnableInstitution)
{
drawY = (picboxPreview.Height - sizefDesignation.Height) / ;
DrawStringOfDesignation(g, sizefDesignation, drawY);
}
else if (EnableName && !EnableDesignation && !EnableDepartment && !EnableInstitution)
{
drawY = (picboxPreview.Height - sizefName.Height) / ;
DrawStringOfName(g, sizefName, drawY);
}
}
picboxPreview.SizeMode = PictureBoxSizeMode.Normal;
picboxPreview.Image = bm;
#region DrawString Name|Designation|Department|Institution
private void DrawStringOfName(Graphics g, SizeF sizefName, float drawY)
{
string drawString = txtName.Text.Trim();
Font drawFont = new Font("Arial", , FontStyle.Bold);
Brush drawBrush = Brushes.Black;
float drawX = (picboxPreview.Width - sizefName.Width) / ;
//drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / 2;
g.DrawString(drawString, drawFont, drawBrush, drawX, drawY);
}
private void DrawStringOfDesignation(Graphics g, SizeF sizefDesignation, float drawY)
{
string drawString = txtDesignation.Text.Trim();
Font drawFont = new Font("Arial", , FontStyle.Regular);
Brush drawBrush = Brushes.Gray;
float drawX = (picboxPreview.Width - sizefDesignation.Width) / ;
//drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / 2;
g.DrawString(drawString, drawFont, drawBrush, drawX, drawY);
}
private void DrawStringOfDepartment(Graphics g, SizeF sizefDepartment, float drawY)
{
string drawString = txtDepartment.Text.Trim();
Font drawFont = new Font("Arial", , FontStyle.Regular);
Brush drawBrush = Brushes.Gray;
float drawX = (picboxPreview.Width - sizefDepartment.Width) / ;
//drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / 2;
g.DrawString(drawString, drawFont, drawBrush, drawX, drawY);
}
private void DrawStringOfInstitution(Graphics g, SizeF sizefInstitution, float drawY)
{
string drawString = txtInstitution.Text.Trim();
Font drawFont = new Font("Arial", , FontStyle.Regular);
Brush drawBrush = Brushes.Gray;
float drawX = (picboxPreview.Width - sizefInstitution.Width) / ;
//drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / 2;
g.DrawString(drawString, drawFont, drawBrush, drawX, drawY);
}
#endregion
结果:

C# Graphics绘图 picBox的更多相关文章
- 用仿ActionScript的语法来编写html5——第五篇,Graphics绘图
用仿ActionScript的语法来编写html5——第五篇,Graphics绘图 canvas本身就是一个Graphics,可以直接进行绘图在actionscript里面,每个Sprite都有一个G ...
- Graphics绘图闪烁的问题
加入获取的boardPanel.CreateGraphics()时候 用这个g去g.Clear(BackColor);时候会闪烁. 解决办法: 在绘图的时候 用 绘图的image的Graphics. ...
- UIKit和Core Graphics绘图(一)——字符串,线条,矩形,渐变
概述 CoreGraphics也称为Quartz 2D 是UIKit下的主要绘图系统,频繁的用于绘制自定义视图.Core Graphics是高度集成于UIView和其他UIKit部分的.Core Gr ...
- Graphics 绘图
Graphics类提供基本绘图方法,Graphics2D类提供更强大的绘图能力. Graphics类提供基本的几何图形绘制方法,主要有:画线段.画矩形.画圆.画带颜色的图形.画椭圆.画圆弧.画多边形等 ...
- 使用java Graphics 绘图工具生成顺丰快递电子面单
最近公司需要开发一个公司内部使用的快递下单系统,给我的开发任务中有一个生成电子面单功能,为了下单时更方便,利用此功能使用快递公司给我们的打印机直接打印出电子面单,刚接到这个任务时我想这应该很简单,不就 ...
- UIKit和Core Graphics绘图(三)——绘制虚线,椭圆以及饼图
绘制虚线 虚线绘制主要调用CGContextSetLineDash函数. 这个函数有4个参数,除了一个是上下文外,phase为初始跳过几个点开始绘制,第三个参数为一个CGFloat数组,指定你绘制的样 ...
- Core Graphics绘图
首先了解一下CGContextRef: An opaque type that represents a Quartz 2D drawing environment. Graphics Context ...
- 1.关于QT中的Graphics绘图,定时器,动画,将窗口中的内容打印到图片上,打印机,打印预览
1 新建项目 A 修改pro中的内容如下: HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += gui widgets prints ...
- iOS绘图系统UIKit与Core Graphics
概述 iOS主要的绘图系统有UIKit,Core Graphics,Core Animation,Core Image,Open GL等,本片博文主要介绍UIKit与Core Graphics的绘图系 ...
随机推荐
- Linux vim命令
介绍 vim命令和vi的操作基本一致,vim命令的参数很多,我在这里列出了一些平时需要用的一些参数,vim主要有两个界面一个是esc的操作界面还有一个是输入i的编辑界面. 移动光标 0 (零):将光标 ...
- 在 Win10 命令行使用 Consolas + 微软雅黑
这个过程挺神奇的,步骤参考了下面两篇文章,但是过程很曲折: 1. 使用Monaco和微软雅黑字体美化cmd和PowerShell 2. [zz]Windows的cmd.exe使用consolas加中文 ...
- Redis总结笔记(二):C#连接Redis简单例子
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/113.html?1455860686 注:C#在调用Redis是不要使用S ...
- ASP.net的文件扩展名
尽管ASP.NET中采用的是事件响应模式,使程序开发人员和最终用户感觉与WinForm程序非常接近,但是它毕竟还是Web应用程序.而Web应用程序的特点,就是基于浏览器与服务器的请求与响应的执行方式. ...
- 每天一个linux命令(61):vi命令 /企业常用的linux命令清单
vi/vim 的使用 基本上 vi/vim 共分为三种模式,分别是一般模式.编辑模式与指令列命令模式. 这三种模式的作用分别是: 一般模式:以 vi 打开一个档案就直接进入一般模式了(这是默认的模式) ...
- jQuery_03之事件、动画、类数组操作
一.事件: 1.模式触发事件: ①DOM:elem.onXXX();只能触发直接用onXXX绑定的事件处理函数:用addEventistener添加的事件监听无法模拟出发触发: ②jQuery:$ ...
- gulp/grunt和browserify/webpack的区别
Gulp应该和Grunt比较,他们的区别我就不说了,说说用处吧.Gulp / Grunt 是一种工具,能够优化前端工作流程.比如自动刷新页面.combo.压缩css.js.编译less等等.简单来说, ...
- Android限定EditText的输入类型为数字或者英文(包括大小写),EditText,TextView只能输入两位小数
Android限定EditText的输入类型为数字或者英文(包括大小写) // 监听密码输入框的输入内容类型,不可以输入中文 TextWatcher mTextWatcher = new Tex ...
- Java environment variables and their functionality
Explanations of Functionalities: 1. PATH env variable It is used to search the command directory whe ...
- Change Git Default Editor in Windows
On 32 bit Win OS: git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' - ...