У меня есть приложение winforms. У меня есть пользовательский элемент управления с большим количеством значков. пользователь может загрузить этот элемент управления в форме много раз (в макете с вкладками). прямо сейчас я загружаю значки каждый раз, когда создается элемент управления (может быть до 50 раз в приложении). есть ли способ кэшировать эти значки в приложении. если бы я сделал это, это уменьшило бы количество дескрипторов gdi, которые я использую, поскольку это становится проблемой.GDI ручки с иконками. l
ответ
Вы можете создать одноэлементный класс для каждого значка. Первая ссылка создает дескриптор. Последующие вызовы используют существующий дескриптор.
Не зная больше о вашем пользователе, мое следующее предложение может быть только очень общим. Но у вас может быть один растровый слой, на котором вы рисуете все свои значки. Остальные элементы вашего пользовательского элемента управления будут существовать выше и вокруг этого растрового изображения.
К сожалению, эта идея может быть проблематичной. Требовать от вас реорганизовать код, который вы все готовы использовать для компоновки значков. Наконец, это не является основополагающим для того, как идеально работают структуры с конструкцией контрольной формы.
Мы столкнулись с проблемой ресурсов с формами ввода для параметрической формы, которую мы поставляем с нашим программным обеспечением CAM. Слишком много текстовых записей вызывало различные формы странности и утечек. Таким образом, мы вместо этого создали метки с границами, которые выглядели как текстовые записи, и имели ОДНЮ текстовую запись (и запись со списком). Когда пользователь вводит вкладки, вводит или щелкает одну текстовую запись, перемещенную в новую запись, и метка была настроена для предыдущей записи.
Это совершенно не интуитивно понятная настройка, нежели то, как вы обычно это кодируете, но это был единственный способ справиться с нашей проблемой с ресурсами.
По моему опыту, похоже, что в графических интерфейсах GUI есть проблемы, когда вам приходится иметь дело с десятками или сотнями записей и что вам нужно подойти к проблеме, используя другой дизайн.
Если проблема заключается в количестве «значков» (не уверен, что вы имеете в виду здесь), вы можете использовать Image-Lists. Например, элемент управления Listview может ссылаться на значки в списке изображений, вместо того, чтобы хранить полную копию для каждого элемента (не уверен, что это относится к вашему делу).
- 1. Утилита утечки памяти/ручки/Gdi
- 2. Есть ли эквивалент мягкой ручки в GDI +?
- 3. GDI подсчитывать стабильным около 100, но ручки COUNT продолжают расти
- 4. Смешивание GDI + с GDI
- 5. Меню PopUp с иконками
- 6. Tablayout только с иконками
- 7. PopMenus с иконками
- 8. Справка с иконками приложений
- 9. меню Gtk с иконками
- 10. Заполнение JButtons с иконками
- 11. py2exe setup.py с иконками
- 12. DrawerNavigationListAdapter с иконками
- 13. SlidingTabLayout только с иконками
- 14. Показать всплывающее меню Win32 с иконками PNG из ресурсов
- 15. Ошибка создания оконной ручки
- 16. WPF TabControl с иконками переполнения
- 17. ANDROID TabLayout с маленькими иконками
- 18. WPF - Создание списка с иконками
- 19. Диаграмма изображения с настраиваемыми иконками
- 20. UIButtons с иконками не нравится
- 21. Java Swing countrycombobox с иконками
- 22. Как создать меню с иконками?
- 23. Кордова: Как обращаться с иконками?
- 24. Mega выпадающее меню с иконками
- 25. C# Создание ListBox с иконками
- 26. OpenLayers проблема с маркерных иконками
- 27. WPF Список принтеров с иконками
- 28. Как создать меню с иконками?
- 29. FFmpeg - множественный выход с иконками
- 30. Ручки Me.Event против Ручки MyBase.Event