需求:

             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的更多相关文章

  1. 用仿ActionScript的语法来编写html5——第五篇,Graphics绘图

    用仿ActionScript的语法来编写html5——第五篇,Graphics绘图 canvas本身就是一个Graphics,可以直接进行绘图在actionscript里面,每个Sprite都有一个G ...

  2. Graphics绘图闪烁的问题

    加入获取的boardPanel.CreateGraphics()时候 用这个g去g.Clear(BackColor);时候会闪烁. 解决办法:  在绘图的时候 用 绘图的image的Graphics. ...

  3. UIKit和Core Graphics绘图(一)——字符串,线条,矩形,渐变

    概述 CoreGraphics也称为Quartz 2D 是UIKit下的主要绘图系统,频繁的用于绘制自定义视图.Core Graphics是高度集成于UIView和其他UIKit部分的.Core Gr ...

  4. Graphics 绘图

    Graphics类提供基本绘图方法,Graphics2D类提供更强大的绘图能力. Graphics类提供基本的几何图形绘制方法,主要有:画线段.画矩形.画圆.画带颜色的图形.画椭圆.画圆弧.画多边形等 ...

  5. 使用java Graphics 绘图工具生成顺丰快递电子面单

    最近公司需要开发一个公司内部使用的快递下单系统,给我的开发任务中有一个生成电子面单功能,为了下单时更方便,利用此功能使用快递公司给我们的打印机直接打印出电子面单,刚接到这个任务时我想这应该很简单,不就 ...

  6. UIKit和Core Graphics绘图(三)——绘制虚线,椭圆以及饼图

    绘制虚线 虚线绘制主要调用CGContextSetLineDash函数. 这个函数有4个参数,除了一个是上下文外,phase为初始跳过几个点开始绘制,第三个参数为一个CGFloat数组,指定你绘制的样 ...

  7. Core Graphics绘图

    首先了解一下CGContextRef: An opaque type that represents a Quartz 2D drawing environment. Graphics Context ...

  8. 1.关于QT中的Graphics绘图,定时器,动画,将窗口中的内容打印到图片上,打印机,打印预览

     1 新建项目 A  修改pro中的内容如下: HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += gui widgets prints ...

  9. iOS绘图系统UIKit与Core Graphics

    概述 iOS主要的绘图系统有UIKit,Core Graphics,Core Animation,Core Image,Open GL等,本片博文主要介绍UIKit与Core Graphics的绘图系 ...

随机推荐

  1. Python--命令行参数解析Demo

    写没有操作界面的程序时,最讨厌的就是参数解析问题,尤其是很多参数那种,下面是一个小Demo,拿出来与各位分享: # -*- coding:utf8 -*- import os import datet ...

  2. buildbot入门系列—介绍篇

    一.介绍 1. buildbot是一个开源的基于python的持续集成系统,它能够以下三种方式触发相应的自动构建和测试运行,从而迅速的发现问题所在,同时指出造成这个错误的开发人员,当然我们还可以通过页 ...

  3. 简单JavaScript模版引擎优化

    在上篇博客最简单的JavaScript模板引擎 说了一下一个最简单的JavaScript模版引擎的原理与实现,作出了一个简陋的版本,今天优化一下,使之能够胜任日常拼接html工作,先把上次写的模版函数 ...

  4. C语言再学习之内存对齐

    昨天看Q3的代码,看到有个_INTSAIZEOF的宏,着实晕了一阵.一番google后,终于明白,这个宏的作用是求出变量占用内存空间的大小,先看看_INTSAIZEOF的定义吧: #define _I ...

  5. 容器使用的12条军规——《Effective+STL中文版》试读

    容器使用的12条军规——<Effective+STL中文版>试读     还 记的自己早年在学校学习c++的时候,老师根本就没有讲STL,导致了自己后来跟人说 起会C++的时候总是被鄙视, ...

  6. JS BOM

    一.window对象 //系统对话框 var flag=confirm("提示语句");//弹出一个对话框 当你点击确定flag=true,点击取消flag=false: var ...

  7. WPF/Silverlight 下的图片局部放大

    最近的项目中也要用到一个局部图片放大的功能,园子里面一搜,发现(菩提下的杨过)杨大侠已经实现了. 请参见这里:http://www.cnblogs.com/yjmyzz/archive/2009/12 ...

  8. java中同步嵌套引起的死锁事例代码

    /* 目的:自己写一个由于同步嵌套引起的死锁! 思路:多个线程在执行时,某一时刻,0-Thread绑定了LockA锁,1-Thread绑定了LockB锁! 当0-Thread要去绑定LockB锁时 和 ...

  9. JavaScript作用域原理(三)——作用域根据函数划分

    一.一个for实例 <p id="scope3" style="color:red"></p> var pscope3 = docume ...

  10. Spark入门实战系列--2.Spark编译与部署(上)--基础环境搭建

    [注] 1.该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取: 2.Spark编译与部署将以CentOS 64位操作系统为基础,主要是考虑到实际应用 ...