需求:

             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. 常用的HTML5、CSS3新特性能力检测写法

    伴随着今年10月底HTML5标准版的发布,未来使用H5的场景会越来越多,这是令web开发者欢欣鼓舞的事情.然而有一个现实我们不得不看清,那就是IE系列浏览器还占有一大部分市场份额,以IE8.9为主,w ...

  2. http学习笔记(二)—— 嘿!伙计,你在哪?(URL)

    我们之所以希望浏览网页,其中一个重要的原因就是庞大的web世界中有很丰富的资源,他就像哆啦a梦的口袋,随时都能拿出我们想要的宝贝.这些资源通过http被传送到我们的浏览器,并展示到我们的屏幕上.而我们 ...

  3. JavaScript字符转Unicode,顺便说句:GitHub的Oh no页面很亮

    遇到个输不出来的字符怎么办,因为输不出来的字符一般又是不常见大多数时候连名字也喊不出来的,所以想问百度谷歌大大也不大可能.如果是小白用户肯定会去把输入法软盘打开切换到其他键盘一个一个找.即使有搜狗输入 ...

  4. 初识jsonp

    jsonp 全称是JSON with Padding,是为了解决跨域请求资源而产生的解决方案.很多时候我们需要在客户端获取服务器数据进行操作,一般我们会使用ajax+webservice做此事,但是如 ...

  5. Qt QT_BEGIN_NAMESPACE

    问题 阅读Qt的Demo源码的时候,经常在头文件中, 声明类型的部分有以下这样的代码: class MyClassA; ///< 自定义类的声明 QT_BEGIN_NAMESPACE class ...

  6. [Java类加载器]Java中classLoader浅析.

    本文为在公司内部TD上写的一篇小文, 主要讲解java中classLoader基础知识, 现在拿来这里分享一下. 一.问题 请在Eclipse中新建如下类,并运行它: 1 package java.l ...

  7. Java面试(1)-- Java赋值表达式

    1 class Demo01{ 2 public static void main(String[] args){ 3 //赋值运算符 = 4 5 //例1 6 int a = 1; 7 System ...

  8. C 中读取键盘码

    键盘码在底层开发中经常用到,有时候我们会忘记它们,就要急急忙忙的去找 键-码 对照表查看,其实程序可以自己打印出 键-码 对应值 #include <stdio.h> #include & ...

  9. Jquery的基本架构

    引入  以前学习原生JS然后切换到用JQ的时候总觉得很不习惯,甚至有点排斥用JQ.后来自己写项目一直到公司实习用JQ的这段时间,才深深感受到JQ的强大~JQ不仅做到兼容很多浏览器,还能很方便地使用JS ...

  10. MS SQL Server存储过程

    1.Create.Alter和Drop CREATE PROCEDURE USP_CategoryList AS SELECT CategoryID,CategoryName FROM Categor ...