#c# #wpf #contextmenu
#c# #wpf #contextmenu
Вопрос:
У меня есть приложение WPF, в котором я использую значок уведомления с формами использования. Мне нужно иметь контекстное меню для этого значка уведомления, где каждый пункт меню также должен иметь свойство изображения вместе с заголовком.
Комментарии:
1. С чем вам нужна помощь? У вас уже есть меню?
2. На данный момент я создал форму WPF с отключенным свойством стиля окна и расположением запуска рядом с панелью задач. В этой форме есть обычные пункты меню wpf, которые поддерживают изображение вместе с заголовком.
3. что мне нужно, так это сделать то же самое с контекстным меню.
4. ДА. Меню должно выполнять задачу.
Ответ №1:
Я знаю, что это компонент WinForms, а не компонент WPF, но вы все равно можете использовать NotifyIcon
в WPF. Установите ContextMenu
или ContextMenuStrip
свойства, чтобы назначить меню значку.
РЕДАКТИРОВАТЬ: Судя по вашим комментариям и ответу, я полагаю, что вы пытаетесь использовать MenuItem
который не имеет встроенной поддержки для отображения изображений. Однако этот недостаток был давно устранен с введением ToolStripMenuItem
. У этого есть Image
свойство, или, альтернативно, ImageIndex
свойство — вы предпочитаете использовать списки изображений.
Комментарии:
1. да, вы можете добавить контекстное меню в NotifyIcon в winforms. Но в меню Wpf есть атрибут icon, с помощью которого вы можете установить изображение в menuitem, которого нет в winforms.
2. Вы имеете в виду, что это отвечает на вопрос? Или вы нашли что-то еще?
3. я добавил ссылку в качестве ответа.
4. И я обновил свой ответ, чтобы помочь в дальнейшем. Вам вообще не нужно рисовать владельца!
5. Ох… Отлично!! это экономит мне много времени!!
Ответ №2:
Наконец-то я смог найти то, что хотел. Вам нужно включить свойство OwnerDraw в меню Forms и записать в него две части событий. Вот ссылка на URL:
Комментарии:
1. Есть ли причина, по которой вы просто не использовали
Image
свойство, как я сказал? Кажется странным использовать все эти длины, когда нужная вам функция тривиально уже встроена. Вы совершаете ошибку, используяMenuItem
вместоToolStripMenuItem
?2. ДА… я не знал о ToolStripMenuItem, я использовал MenuItem
3. Хорошо, тогда это решает проблему. Просто тривиально делать то, что вам нужно, с помощью NotifyIcon и ToolStripMenuItem в соответствии с моим ответом. Рад, что я все-таки не сошел с ума!!