图形.绘制*,自动滚动&扑杀

本文关键字:滚动 扑杀 绘制 图形 | 更新日期: 2023-09-27 18:18:06

我已经在c#/Winforms中实现了一个自定义控件,它可以做语法高亮&自动完成。我正在使用自动滚动来管理滚动,它工作得很好。

目前我还没有优化(当然优化是重要的,但我做最后;功能是我首先要考虑的),我正在渲染巨大的文档,每次按键都会重新解析受影响的行,以确保语法高亮一致。

现在在我的大肉绘制方法中,我正在绘制每个字符串,关键字等,即使它在剪辑区域之外。但是不管文档有多大&有多少个关键字/高亮显示位的组合&我有碎片,它仍然运行得非常快,内存不多& &;CPU开销。

所以我的问题-做图形。Draw*方法做任何类型的剔除?例如:如果AutoScrollPosition在文档的下方&我的图形。DrawString(插入一些坐标外绘制区域),是任何实际的工作正在完成?另外请注意,我在win7上运行VS在VM中,它仍然运行得很快。这并不是现在的问题,但在以后的优化阶段,最好记住这一点。: D

欢呼,亚伦

图形.绘制*,自动滚动&扑杀

从个人编写使用图像的游戏的经验来看。如果你在调用绘图方法之前执行自己的边界检查,你会注意到速度的提高。

尝试在屏幕外画东西比在屏幕上画东西快,但仍然明显比不画它们慢。