The*_*Sky 16 .net c# gdi+ winforms
我有一个应用程序做了很多绘图,让我们假装它是一个类似Viso的应用程序.它有一些对象,它们有多个绘制的子对象,可以连接的东西,调整大小等等.目前,当我在特定的子对象或对象上调用paint时,我会执行以下操作:
using(var pen = new Pen(this.ForeColor))
{
// Paint for this object.
}
Run Code Online (Sandbox Code Playgroud)
我已经阅读了相互矛盾的答案,这应该针对一个不断绘制相同内容的应用程序(可能只是重新调整大小,移动等)来完成.我应该Pen/Brush将对象存储在对象中,然后在处理应用程序时将它们全部丢弃,或者它们是否足够高效以便为每次绘制调用创建/处理(记住这是一个非常图形密集的应用程序).
编辑:已经有两个答案有相互矛盾的答案,这是我不确定要切换的地方.有没有人对这些差异有任何统计数据?
您当然可以使用Pens和Brushes类来为您提供已由运行时创建的对象.
例如,如果您想要一个标准颜色笔,您可以这样做:
var pen = Pens.Red;
Run Code Online (Sandbox Code Playgroud)
同样,如果你只想要标准的实心画笔颜色,你可以用画笔做同样的事情:
var brush = Brushes.Red
Run Code Online (Sandbox Code Playgroud)
使用这些,您无需担心清理,处理或其他方式.
如果您想要自己创建不同的颜色,例如使用不同的alpha组件或渐变画笔,那么您仍然需要自己创建并适当地清理它们.
编辑:
创建和处理一个由100,000个新笔组成的数组,在我古老的旧机器上花了大约半秒钟,在调试模式下运行测试应用程序.
这相当于每笔约5微秒.只有你可以决定它是否足够快.我猜想这个时间对于你的其他行动来说可能是微不足道的.
| 归档时间: |
|
| 查看次数: |
4326 次 |
| 最近记录: |