我正在使用控件绘制事件在我的应用程序中绘制图形对象。所有物体的尺寸以毫米为单位存储,因此我使用“毫米”。作为图形对象的PageUnit。出于某种原因,当我使用DashStyle绘制除实体之外的形状时,它会以非常意想不到的比例绘制。
在下面的代码示例中,我希望看到两条线在另一条线上方被绘制,但我得到的是红色虚线在其他地方以更大的比例绘制。
知道我缺少什么吗?
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication6
{
public partial class Form1 : Form
{
private Pen solidBlackPen = new Pen(Color.Black, 1);
private Pen dashedRedPen = new Pen(Color.Red, 1) {
DashStyle = DashStyle.Dash
};
private Point point1 = new Point(5, 5);
private Point point2 = new Point(35, 5);
public Form1()
{
InitializeComponent();
this.BackColor = Color.White;
this.Paint += new PaintEventHandler(Form1_Paint);
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.PageUnit = GraphicsUnit.Millimeter;
e.Graphics.DrawLine(solidBlackPen, point1, point2);
e.Graphics.DrawLine(dashedRedPen, point1, point2);
}
}
}
由于我是新手,我无法上传截图。
答案 0 :(得分:0)
经过几次测试,这对我来说就像某种只在特定Os /框架上发生mybe的bug。
设法修复我的是在绘制形状之前添加以下行:
e.Graphics.ScaleTransform(1, 1);