是的,計時器將工作。這是一個巧妙的技巧,我在一個微軟的例子中看到了這個例子,它展示瞭如何在Winforms項目中使用XNA。它採用Application.Idle事件:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
pictureBox1.Paint += new PaintEventHandler(pictureBox1_Paint);
Application.Idle += new EventHandler(Application_Idle);
this.FormClosed += delegate { Application.Idle -= Application_Idle; };
}
private void Application_Idle(object sender, EventArgs e) {
pictureBox1.Invalidate();
}
int cnt;
void pictureBox1_Paint(object sender, PaintEventArgs e) {
cnt++;
e.Graphics.DrawString(cnt.ToString(), this.Font, Brushes.Black, 0, 0);
}
}
我用一個圖片代替面板的隱藏閃爍,PB有DoubleBuffered屬性開啓。儘管如此,這與XNA並不相關。使用vsync不會起作用。你可能應該看看這個例子,當我嘗試它時,「旋轉三角形」完全平滑,沒有任何撕裂。 This thread談論它。