Лучшая практика для рисования пользовательского элемента управления в Winforms?

Я не думаю, что когда-либо имел возможность совместно использовать владение в своем дизайне. На самом деле от вершины моей головы единственный допустимый случай, о котором я могу думать, является шаблоном В наилегчайшем весе.

7
задан Joan Venge 11 November 2009 в 21:27
поделиться

3 ответа

Если кисти и перья не меняются, то, безусловно, лучше создайте их один раз и используйте повторно. Однако обратите внимание, что если ваш элемент управления может использоваться в нескольких потоках (что очень маловероятно), вам следует либо сделать их ThreadStatic (и инициализировать при первом использовании для каждого потока), либо сделать их членами экземпляра (и удалить их в вашем элементе управления Dispose override); в противном случае вы получите невоспроизводимые ошибки GDI +, поскольку объекты GDI + нельзя использовать одновременно в нескольких потоках.

8
ответ дан 6 December 2019 в 21:15
поделиться

Я бы сделал кисти и перья как элементы настраиваемого элемента управления, а затем удалил их при утилизации контроля. Таким образом, вы повторно используете одну и ту же кисть / перо каждый раз при вызове OnPaint.

Я бы не объявлял их статическими , потому что вы не смогли бы узнать, когда вы можете избавиться от своих объектов. Но, как упоминал SLaks, если в памяти одновременно находится много экземпляров элемента управления, может быть хорошей идеей создать кисти и перья как статические, чтобы у вас был только один экземпляр каждого объекта, созданного на время жизни вашего приложения. .

1
ответ дан 6 December 2019 в 21:15
поделиться

Лучше всего использовать системные перья и кисти, поскольку они оптимизированы для минимального потребления ресурсов.

0
ответ дан 6 December 2019 в 21:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: