zoukankan      html  css  js  c++  java
  • C# Graphics绘图 picBox

    需求:

      1             Bitmap bm = new Bitmap(picboxPreview.Width, picboxPreview.Height);
      2             using (Graphics g = Graphics.FromImage(bm))
      3             {
      4                 //绘制外面的矩形边框
      5                 Pen pen = new Pen(Color.Black, 2.0f);
      6                 g.DrawRectangle(pen, new Rectangle(new Point(0, 0), picboxPreview.Size));
      7                 //绘制左边的位图
      8                 if (cbxPhoto.CheckedStatus && picboxPhoto.Image != null)
      9                 {
     10                     g.DrawImage(picboxPhoto.Image, new Rectangle(new Point(5, 5), new Size(picboxPreview.Height - 5, picboxPreview.Height - 10)));
     11                 }
     12                 //绘制右边的位图
     13                 if (cbxLogo.CheckedStatus && picboxLogo.Image != null)
     14                 {
     15                     g.DrawImage(picboxLogo.Image, new Rectangle(new Point(picboxPreview.Width - (picboxPreview.Height - 5) - 5, 5), new Size(picboxPreview.Height - 5, picboxPreview.Height - 10)));
     16                 }
     17                 //绘制Name、Designation、Department、Institution/Company
     18                 StringFormat sf = new StringFormat();
     19                 sf.Alignment = StringAlignment.Center;
     20                 sf.LineAlignment = StringAlignment.Center;
     21                 Font fA = new Font("Arial", 15, FontStyle.Bold);
     22                 Font fB = new Font("Arial", 12, FontStyle.Regular);
     23                 //1.绘制4行 Name Designation Department Institution/Company
     24                 //2.绘制3行 Name Designation Department
     25                 //3.        Name Designation Institution/Company
     26                 //4         Name Department Institution/Company
     27                 //5         Designation Department Institution/Company
     28                 //6.绘制2行 Name Designation
     29                 //7         Name Department
     30                 //8         Name Institution/Company
     31                 //9         Designation Department
     32                 //10        Designation Institution/Company
     33                 //11        Department Institution/Company 
     34                 //12.绘制1行Name   
     35                 //13.       Designation   
     36                 //14.       Department  
     37                 //15.       Institution/Company
     38                 bool EnableName = cbxName.CheckedStatus && !string.IsNullOrEmpty(txtName.Text.Trim());
     39                 bool EnableDesignation = cbxDesignation.CheckedStatus && !string.IsNullOrEmpty(txtDesignation.Text.Trim());
     40                 bool EnableDepartment = cbxDepartment.CheckedStatus && !string.IsNullOrEmpty(txtDepartment.Text.Trim());
     41                 bool EnableInstitution = cbxInstitution.CheckedStatus && !string.IsNullOrEmpty(txtInstitution.Text.Trim());
     42                 //float drawX;
     43                 float drawY;
     44                 SizeF sizefName = g.MeasureString(txtName.Text.Trim(), new Font("Arial", 15, FontStyle.Bold));
     45                 SizeF sizefDesignation = g.MeasureString(txtDesignation.Text.Trim(), new Font("Arial", 12, FontStyle.Regular));
     46                 SizeF sizefDepartment = g.MeasureString(txtDepartment.Text.Trim(), new Font("Arial", 12, FontStyle.Regular));
     47                 SizeF sizefInstitution = g.MeasureString(txtInstitution.Text.Trim(), new Font("Arial", 12, FontStyle.Regular));
     48                 g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
     49                 bool EnableRows = EnableName && EnableDesignation && EnableDepartment && EnableInstitution;
     50                 if (EnableName && EnableDesignation && EnableDepartment && EnableInstitution)
     51                 {//1.绘制4行 Name Designation Department Institution/Company
     52                     drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / 2;
     53                     DrawStringOfName(g, sizefName, drawY);
     54 
     55                     drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / 2 + sizefName.Height;
     56                     DrawStringOfDesignation(g, sizefDesignation, drawY);
     57 
     58                     drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / 2 + sizefName.Height + sizefDesignation.Height;
     59                     DrawStringOfDepartment(g, sizefDepartment, drawY);
     60 
     61                     drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / 2 + sizefName.Height + sizefDesignation.Height + sizefDepartment.Height;
     62                     DrawStringOfInstitution(g, sizefInstitution, drawY);
     63                 }
     64                 else if (!EnableName && EnableDesignation && EnableDepartment && EnableInstitution)
     65                 {
     66                     drawY = (picboxPreview.Height - (sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / 2;
     67                     DrawStringOfDesignation(g, sizefDesignation, drawY);
     68 
     69                     drawY = (picboxPreview.Height - (sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / 2 + sizefDesignation.Height;
     70                     DrawStringOfDepartment(g, sizefDepartment, drawY);
     71 
     72                     drawY = (picboxPreview.Height - (sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / 2 + sizefDesignation.Height + sizefDepartment.Height;
     73                     DrawStringOfInstitution(g, sizefInstitution, drawY);
     74                 }
     75                 else if (EnableName && !EnableDesignation && EnableDepartment && EnableInstitution)
     76                 {
     77                     drawY = (picboxPreview.Height - (sizefName.Height + sizefDepartment.Height + sizefInstitution.Height)) / 2;
     78                     DrawStringOfName(g, sizefName, drawY);
     79 
     80                     drawY = (picboxPreview.Height - (sizefName.Height + sizefDepartment.Height + sizefInstitution.Height)) / 2 + sizefName.Height;
     81                     DrawStringOfDepartment(g, sizefDepartment, drawY);
     82 
     83                     drawY = (picboxPreview.Height - (sizefName.Height + sizefDepartment.Height + sizefInstitution.Height)) / 2 + sizefName.Height + sizefDepartment.Height;
     84                     DrawStringOfInstitution(g, sizefInstitution, drawY);
     85                 }
     86                 else if (EnableName && EnableDesignation && !EnableDepartment && EnableInstitution)
     87                 {
     88                     drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefInstitution.Height)) / 2;
     89                     DrawStringOfName(g, sizefName, drawY);
     90 
     91                     drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefInstitution.Height)) / 2 + sizefName.Height;
     92                     DrawStringOfDesignation(g, sizefDesignation, drawY);
     93 
     94                     drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefInstitution.Height)) / 2 + sizefName.Height + sizefDesignation.Height;
     95                     DrawStringOfInstitution(g, sizefInstitution, drawY);
     96                 }
     97                 else if (EnableName && EnableDesignation && EnableDepartment && !EnableInstitution)
     98                 {
     99                     drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height)) / 2;
    100                     DrawStringOfName(g, sizefName, drawY);
    101 
    102                     drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height)) / 2 + sizefName.Height;
    103                     DrawStringOfDesignation(g, sizefDesignation, drawY);
    104 
    105                     drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height)) / 2 + sizefName.Height + sizefDesignation.Height;
    106                     DrawStringOfDepartment(g, sizefDepartment, drawY);
    107                 }
    108                 else if (!EnableName && !EnableDesignation && EnableDepartment && EnableInstitution)
    109                 {
    110                     drawY = (picboxPreview.Height - (sizefDepartment.Height + sizefInstitution.Height)) / 2;
    111                     DrawStringOfDepartment(g, sizefDepartment, drawY);
    112 
    113                     drawY = (picboxPreview.Height - (sizefDepartment.Height + sizefInstitution.Height)) / 2 + sizefDepartment.Height;
    114                     DrawStringOfInstitution(g, sizefInstitution, drawY);
    115                 }
    116                 else if (!EnableName && EnableDesignation && !EnableDepartment && EnableInstitution)
    117                 {
    118                     drawY = (picboxPreview.Height - (sizefDesignation.Height + sizefInstitution.Height)) / 2;
    119                     DrawStringOfDesignation(g, sizefDesignation, drawY);
    120 
    121                     drawY = (picboxPreview.Height - (sizefDesignation.Height + sizefInstitution.Height)) / 2 + sizefDesignation.Height;
    122                     DrawStringOfInstitution(g, sizefInstitution, drawY);
    123                 }
    124                 else if (!EnableName && EnableDesignation && EnableDepartment && !EnableInstitution)
    125                 {
    126                     drawY = (picboxPreview.Height - (sizefDesignation.Height + sizefDepartment.Height)) / 2;
    127                     DrawStringOfDesignation(g, sizefDesignation, drawY);
    128 
    129                     drawY = (picboxPreview.Height - (sizefDesignation.Height + sizefDepartment.Height)) / 2 + sizefDesignation.Height;
    130                     DrawStringOfDepartment(g, sizefDepartment, drawY);
    131                 }
    132                 else if (EnableName && !EnableDesignation && !EnableDepartment && EnableInstitution)
    133                 {
    134                     drawY = (picboxPreview.Height - (sizefName.Height + sizefInstitution.Height)) / 2;
    135                     DrawStringOfName(g, sizefName, drawY);
    136 
    137                     drawY = (picboxPreview.Height - (sizefName.Height + sizefInstitution.Height)) / 2 + sizefName.Height;
    138                     DrawStringOfInstitution(g, sizefInstitution, drawY);
    139                 }
    140                 else if (EnableName && !EnableDesignation && EnableDepartment && !EnableInstitution)
    141                 {
    142                     drawY = (picboxPreview.Height - (sizefName.Height + sizefDepartment.Height)) / 2;
    143                     DrawStringOfName(g, sizefName, drawY);
    144 
    145                     drawY = (picboxPreview.Height - (sizefName.Height + sizefDepartment.Height)) / 2 + sizefName.Height;
    146                     DrawStringOfDepartment(g, sizefDepartment, drawY);
    147                 }
    148                 else if (EnableName && EnableDesignation && !EnableDepartment && !EnableInstitution)
    149                 {
    150                     drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height)) / 2;
    151                     DrawStringOfName(g, sizefName, drawY);
    152 
    153                     drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height)) / 2 + sizefName.Height;
    154                     DrawStringOfDesignation(g, sizefDesignation, drawY);
    155                 }
    156                 else if (!EnableName && !EnableDesignation && !EnableDepartment && EnableInstitution)
    157                 {
    158                     drawY = (picboxPreview.Height - sizefInstitution.Height) / 2;
    159                     DrawStringOfInstitution(g, sizefInstitution, drawY);
    160                 }
    161                 else if (!EnableName && !EnableDesignation && EnableDepartment && !EnableInstitution)
    162                 {
    163                     drawY = (picboxPreview.Height - sizefDepartment.Height) / 2;
    164                     DrawStringOfDepartment(g, sizefDepartment, drawY);
    165                 }
    166                 else if (!EnableName && EnableDesignation && !EnableDepartment && !EnableInstitution)
    167                 {
    168                     drawY = (picboxPreview.Height - sizefDesignation.Height) / 2;
    169                     DrawStringOfDesignation(g, sizefDesignation, drawY);
    170                 }
    171                 else if (EnableName && !EnableDesignation && !EnableDepartment && !EnableInstitution)
    172                 {
    173                     drawY = (picboxPreview.Height - sizefName.Height) / 2;
    174                     DrawStringOfName(g, sizefName, drawY);
    175                 }
    176             }
    177             picboxPreview.SizeMode = PictureBoxSizeMode.Normal;
    178             picboxPreview.Image = bm;    
     1         #region DrawString Name|Designation|Department|Institution
     2         private void DrawStringOfName(Graphics g, SizeF sizefName, float drawY)
     3         {
     4             string drawString = txtName.Text.Trim();
     5             Font drawFont = new Font("Arial", 15, FontStyle.Bold);
     6             Brush drawBrush = Brushes.Black;
     7             float drawX = (picboxPreview.Width - sizefName.Width) / 2;
     8             //drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / 2;
     9             g.DrawString(drawString, drawFont, drawBrush, drawX, drawY);
    10         }
    11         private void DrawStringOfDesignation(Graphics g, SizeF sizefDesignation, float drawY)
    12         {
    13             string drawString = txtDesignation.Text.Trim();
    14             Font drawFont = new Font("Arial", 12, FontStyle.Regular);
    15             Brush drawBrush = Brushes.Gray;
    16             float drawX = (picboxPreview.Width - sizefDesignation.Width) / 2;
    17             //drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / 2;
    18             g.DrawString(drawString, drawFont, drawBrush, drawX, drawY);
    19         }
    20         private void DrawStringOfDepartment(Graphics g, SizeF sizefDepartment, float drawY)
    21         {
    22             string drawString = txtDepartment.Text.Trim();
    23             Font drawFont = new Font("Arial", 12, FontStyle.Regular);
    24             Brush drawBrush = Brushes.Gray;
    25             float drawX = (picboxPreview.Width - sizefDepartment.Width) / 2;
    26             //drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / 2;
    27             g.DrawString(drawString, drawFont, drawBrush, drawX, drawY);
    28         }
    29         private void DrawStringOfInstitution(Graphics g, SizeF sizefInstitution, float drawY)
    30         {
    31             string drawString = txtInstitution.Text.Trim();
    32             Font drawFont = new Font("Arial", 12, FontStyle.Regular);
    33             Brush drawBrush = Brushes.Gray;
    34             float drawX = (picboxPreview.Width - sizefInstitution.Width) / 2;
    35             //drawY = (picboxPreview.Height - (sizefName.Height + sizefDesignation.Height + sizefDepartment.Height + sizefInstitution.Height)) / 2;
    36             g.DrawString(drawString, drawFont, drawBrush, drawX, drawY);
    37         }
    38         #endregion

     结果:

  • 相关阅读:
    什么是软件质量?
    软件生存周期及其模型是什么?
    给你一个网站,你如何测试?
    jquery中$.get()提交和$.post()提交有区别吗?
    JQuery有几种选择器?
    ajax和layui总结
    md5加密
    Collection接口相关介绍
    JS 中document.URL 和 windows.location.href 的区别
    window.location.href的用法(动态输出跳转)
  • 原文地址:https://www.cnblogs.com/zhyue93/p/Graphics.html
Copyright © 2011-2022 走看看