0
我想在繪製事件中使用它的圖形對象在Winforms面板上繪製多行。我實際上正在繪製連接給定點的許多行。所以,首先我這樣做,使用DrawLine和DrawLine繪製多條線會產生不同的結果
private void panel1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawLines(new Pen(new SolidBrush(Color.Crimson), 3), PointFs.ToArray());
float width = 10;
float height = 10;
var circleBrush = new SolidBrush(Color.Crimson);
foreach (var point in PointFs)
{
float rectangleX = point.X - width/2;
float rectangleY = point.Y - height/2;
var r = new RectangleF(rectangleX, rectangleY, width, height);
e.Graphics.FillEllipse(circleBrush, r);
}
}
產生結果如下圖,
正如你所看到的畫線與尖銳件具有延伸一點點轉彎,這不是預期的。所以,我把劃線代碼改爲,
var pen = new Pen(new SolidBrush(Color.Crimson), 3);
for (int i = 1; i < PointFs.Count; i++)
{
e.Graphics.DrawLine(pen, PointFs[i - 1], PointFs[i]);
}
現在繪圖工作正常。
誰能告訴這兩種方法之間的區別?