我最近在C#中开发一个只能绘制矩形的超简单绘图程序。我希望程序在光标悬停在矩形上时突出显示一个矩形。但是它会很慢,因为每次处理MouseMove
事件时,我都需要枚举用户绘制的所有矩形,并查看光标的点是否在任何矩形中。你能告诉我如何优化性能吗?
答案 0 :(得分:2)
通过矩形列表枚举应该非常快,所以我在MouseMove中没有看到任何问题。另一方面,重新选择(鼠标悬停)矩形的重绘速度相对较慢,因此只有在矩形状态发生变化时(f'从'hovered'变为'normal')才能重新绘制。因此,只有在必要时才调用invalidate rect,并且没有任何问题。
祝你好运!