Есть ли какой-нибудь способ добавить изображение в контекстное меню значка уведомления?

#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:

http://www.codeproject.com/KB/menus/cs_menus.aspx

Комментарии:

1. Есть ли причина, по которой вы просто не использовали Image свойство, как я сказал? Кажется странным использовать все эти длины, когда нужная вам функция тривиально уже встроена. Вы совершаете ошибку, используя MenuItem вместо ToolStripMenuItem ?

2. ДА… я не знал о ToolStripMenuItem, я использовал MenuItem

3. Хорошо, тогда это решает проблему. Просто тривиально делать то, что вам нужно, с помощью NotifyIcon и ToolStripMenuItem в соответствии с моим ответом. Рад, что я все-таки не сошел с ума!!