繁体   English   中英

为.net Compact Framework构建自定义绘制控件

[英]Build a custom drawn control for .net compact framework

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

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

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

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

每当需要更改图像时,请使用Graphics.FromImage()创建一个Graphics对象,传递PB的Image并绘制您的东西。 调用PB的Invalidate()方法以告知它需要重绘图像。 如果仍然看到闪烁,请重写PB的OnPaintBackground()方法,而不执行任何操作。

唯一的其他考虑因素是处理调整大小,您需要更大或更小的位图。 不确定是否需要游戏。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM