为.net紧凑框架构建自定义绘制控件

时间:2010-06-12 13:05:18

标签: c# windows-mobile compact-framework drawing

我刚开始使用.net紧凑框架。我想在屏幕上绘制一个Sudoku字段。所以我放下PictureBox并为Paint事件定义了一个方法:

private void pictureBoxPlayfield_Paint(object sender, PaintEventArgs e)
{
    // use e.Graphics to draw the grid, numbers and cursor
}

这可行,但您可以看到绘制网格。所以我的问题是,创建这样一个自定义控件的正确/更好的方法是什么?有没有办法启用双缓冲?

1 个答案:

答案 0 :(得分:2)

Compact Framework中没有内置的双缓冲支持。您可以自己添加它,PictureBox已经支持Image属性。在构造函数中创建一个位图并将其分配给Image。您不再需要Paint事件,PictureBox提供的事件已将其绘制到屏幕上。

每当图像需要更改时,使用Graphics.FromImage()创建一个Graphics对象,传递PB的Image并绘制你的东西。调用PB的Invalidate()方法告诉它需要重绘图像。如果你仍然看到闪烁,请覆盖PB的OnPaintBackground()方法,什么都不做。

唯一的另一个考虑因素是处理调整大小,你需要一个更大或更小的位图。不太确定游戏是否必要。

相关问题