![]() |
1
8
如果画笔和钢笔没有改变,那么最好创建一次并重新使用它们。但是,请注意,如果控件可能用于多个线程(这是非常不可能的),则应该使它们
如果它们确实发生了更改(例如,如果使用的渐变画笔取决于控件的大小),您可能仍然希望将它们存储在实例字段中,并在控件的大小(或其他)发生更改时重新创建它们。
注意,顺便说一下,如果你使用普通颜色,你可以使用静态
|
![]() |
2
2
我读了一篇文章 interesting article 上个月,它建议在单独的bufferedgraphics对象上进行所有绘制,并让on-paint方法直接从该对象复制到控件的图形对象。 这样,画图速度就更快了,只有当一些重要的变化(例如,行移动或文本变化)时,才更新Bufferedgraphics。 |
![]() |
3
1
我要做的是将画笔和笔作为自定义控件的成员,然后在释放控件时对它们进行处置。这样,每次调用OnPaint时都可以重复使用相同的画笔/笔。
我不会申报的
|
![]() |
4
1
我真的要看你在画什么。如果要绘制仅因用户交互而重新绘制的内容,可以释放性能顾虑,并在需要时创建所有图形对象。
确保你
如果您需要以某种方式设置动画或在用户不单击的情况下及时更改的图形,请准备前面的所有图形对象,并尽可能多地重用它们。这里可以应用的规则是,在绘制动画的每一帧时,最好先浪费内存,然后是毫秒。 最后,至少对于本文来说,不要忘记使用双缓冲,或者在.NET控制系统中使用自动缓冲,或者回滚自己的位图样式。 祝你玩得开心:) |
![]() |
5
0
最好的做法是使用系统笔和刷子,因为这些都是为了最小化资源消耗而优化的。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 4 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 4 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 5 月前 |