Я работаю над старым проектом, обновляю его. Часть программы имеет набор инструментов с множеством кнопок, каждая с изображением. Я обнаружил, что изображения хранятся в виде потока изображений в кодировке Base64 в формате resx для формы и доступны следующим образом:
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
...
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
...
this.toolStrip1.ImageList = this.imageList1;
...
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
...
this.toolStripButton1.ImageIndex = 0; //There are 41 images, so this can be between 0 and 40
Мне нужно добавить еще одну кнопку с новым изображением. Как я могу добавить изображение в этот поток?
Я не могу использовать конструктор, так как он падает, как только я загружаю форму (я полагаю, потому что он использует пользовательский компонент с небезопасным кодом).
Я всегда мог бы просто добавить новый ресурс изображения отдельно от потока, но это делало бы эту одну кнопку другой, и, таким образом, это создавало бы проблемы с согласованностью, вызывая проблемы с поддержкой позже. Поэтому мне интересно, есть ли какой-либо способ для меня, чтобы отредактировать imagetream. Я могу получить доступ к необработанной строке base64, но не знаю, куда идти.