Как изменить цвет галочки или стрелки «больше» в контекстном меню WinForms? - PullRequest
2 голосов
/ 26 октября 2011

У меня есть контекстное меню, в котором нужно использовать темный фон. Он использует контрольное поле и имеет несколько подменю. Галочка и стрелка, указывающая на подменю, являются черными и поэтому плохо различимы. Я не могу найти способ изменить цвет. (Мне кажется очевидным, что они должны использовать ForeColor, который мы установили для текста белым цветом, но это, похоже, не влияет на флажки или стрелки.)

Есть ли способ сделать это?

РЕДАКТИРОВАТЬ: мы используем изображения на полях изображения в качестве обходного пути. Но у нас есть другие проблемы с этим, и прежде чем пытаться их решить, я подумал, что постараюсь найти более простое решение основной проблемы.

1 Ответ

1 голос
/ 26 октября 2011

Что я делал в прошлом в подобных случаях, так это "эмулировал" флажок, переключая изображения контекстного меню.

т.е. Я помню, был ли пункт меню отмечен / не отмечен (т. Е. Как логическое значение внутри Tag пункта меню), а затем изменил изображение соответствующим образом либо на контрольное изображение, либо на изображение не было, в зависимости от состояния элемента меню.

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

Для стрелки справа я предполагаю, что вы можете эмулировать ее, нарисовав стрелку с другим шрифтом (Wingdings, например?) Внутри области, где отображаются ярлыки.

Или, в качестве совершенно другого подхода, используйте функциональность рисования владельца MenuItem.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...