系统相关
首页 > 系统相关> > 以Microsoft C# Windows程序设计为例,理解PageUnit和PageScale的用法

以Microsoft C# Windows程序设计为例,理解PageUnit和PageScale的用法

作者:互联网

Microsoft windows 程序设计,第250页中,使用不同的枚举值,来求得“一英寸长的直线”,达到相同的目标。

对于以上代码,我编写了实例进行实践,代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Drawing;
 6 using System.Windows.Forms;
 7 
 8 namespace PageUnitDemo
 9 {
10     class PageUnitDemo:Form
11     {
12         static void Main(string[] args)
13         {
14             Application.Run(new PageUnitDemo());
15         }
16         public PageUnitDemo()
17         {
18             Text = "Page Unit 试验!";
19         }
20         protected override void OnPaint(PaintEventArgs e)
21         {
22             Graphics grfx = e.Graphics;
23 
24             grfx.PageUnit = GraphicsUnit.Inch;
25             grfx.PageScale = 0.01f;
26 
27             grfx.DrawLine((new Pen(ForeColor)),0,10,100,10);
28 
29             grfx.PageUnit = GraphicsUnit.Document;
30             grfx.PageScale = 3;
31 
32             grfx.DrawLine(new Pen(ForeColor),0,20,100,20);
33 
34             grfx.PageUnit = GraphicsUnit.Pixel;
35             grfx.PageScale = 1 ;
36 
37             grfx.DrawLine(new Pen(ForeColor), 0, 30, 96, 30);
38 
39             grfx.PageUnit = GraphicsUnit.Millimeter;
40             grfx.PageScale = 0.254f;
41 
42             grfx.DrawLine(new Pen(ForeColor), 0, 40, 100, 40);
43 
44             grfx.PageUnit = GraphicsUnit.Point;
45             grfx.PageScale = 0.72f;
46 
47             grfx.DrawLine(new Pen(ForeColor), 0, 50, 100, 50);
48         }
49     }
50 }

 

 从以上结果可以看到,绘制的直线长度都是一样的;

其中,pixel是像素单位,pixel与inch之间的换算关系为:inch = pixel / 96

综合上述五种换算关系,总结为:DrawLine函数中的线长度*PageScale = 一个单位的PageUnit.枚举值;

 

标签:PageUnit,grfx,为例,PageScale,System,DrawLine,using
来源: https://www.cnblogs.com/chenlight/p/16213814.html