1
我想在PictureBox
中繪製一條線的旋轉動畫。我用pictureBox1.CreateGraphics()
來畫線,但是我聽說這種方法不適用於PictureBox
。另外,我在PictureBox
窗口上遇到沉重的閃爍,有什麼建議?下面是一個代碼段:繪製pictureBox中的旋轉線
private void OnTimedEvent(object source, PaintEventArgs e)
{
try
{
if (comport.BytesToRead > 0)
{
X = comport.ReadByte();
Y = comport.ReadByte();
Z = comport.ReadByte();
}
Graphics g = pictureBox1.CreateGraphics();
Pen red = new Pen(Color.Red, 2);
g.TranslateTransform(100, 80 - X);
g.RotateTransform(120);
g.DrawLine(red, new Point(100, 0 + X), new Point(100, 80 - X));
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void timer1_Tick(object sender, EventArgs e)
{
try
{
timer1.Interval = 1;
pictureBox1.Invalidate();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
還有一件事,如果我想在不清除現有行的情況下在pictureBox中繪製一條線,我該怎麼辦? – HacLe
有兩種可能的方法。如果要繪製有限數量的行,可以將每個新的X值存儲到列表或數組中(我更喜歡列表是因爲它們可以變得更容易),並且當有足夠的值時(比如說10-20),應該添加新的值並刪除最老的。然後在每個Paint事件中,您應該遍歷這些值並繪製線條。另一種方法可以在每個新行的位圖上繪製而不清除舊行,但最終位圖會被行重載並且圖片無意義。如果你想要更多的澄清我可用。 –