На ваш вопрос неожиданно не хватает необходимых деталей, поэтому я попытаюсь выяснить, могу ли я заполнить некоторые пробелы ...
Я предполагаю, что под "значком" вы подразумеваете найденное вами изображение, похожее на то, которое используется в Microsoft Word:
И я предполагаю, что вы поместили этот значок на панель инструментов какого-то типа. Кроме того, я предполагаю, что после нажатия значка (или стрелки раскрывающегося меню рядом со значком) на панели инструментов пользователю предоставляется элемент управления палитрой цветов, из которого он может выбрать собственный цвет.
Итак, ваш вопрос: как я могу изменить это красное подчеркивание по умолчанию, чтобы оно соответствовало цвету, выбранному пользователем в моем элементе управления выбора цвета.
Короткий ответ: ты не можешь. Если обратить пристальное внимание, большинство приложений не обновляют цвет этого значка в соответствии с выбранным цветом. Это намного больше работы, чем стоит, учитывая, что после завершения она будет мало полезна для вашего приложения. Удивительно немногие пользователи даже заметят эту "особенность".
Но если вы хотите сделать это, вам нужно будет создавать и изменять значок на лету после того, как пользователь выберет цвет. Начните с значка шаблона, один без какого-либо цвета, заполненного для цветного прямоугольника вообще. Вы можете создать это из своего существующего значка, используя приложение для редактирования иконок (как мой личный фаворит, IcoFX ).
После того как вы создали значок шаблона, вам нужно написать код, который загружает этот значок в растровое изображение (System.Drawing.Bitmap
), заполняет соответствующую прямоугольную область выбранным цветом (Graphics.FillRectangle
), а затем преобразует это растровое изображение обратно в значок. Наконец, назначьте иконку, которую вы создали в памяти, кнопке панели инструментов и удивитесь тому, чего вы достигли.