以意想不到的比例绘制的虚线形状

我正在使用控件绘画事件在我的应用程序中绘制图形对象。所有对象的大小以毫米为单位存储,因此我使用“毫米”作为图形对象的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);

}

}

}

因为我是新的我不能上传截图。

回答:

经过几次测试后,这看起来像是一种只在特定的OS /框架上发生了mybe的bug。

什么设法解决我这是将下面的行绘制形状前:

e.Graphics.ScaleTransform(1, 1); 

以上是 以意想不到的比例绘制的虚线形状 的全部内容, 来源链接: utcz.com/qa/265590.html

回到顶部