Щелкните правой кнопкой мыши контекстное меню в системном трее - PullRequest
5 голосов
/ 15 января 2011

У меня есть приложение WPF, которое запускается в системном трее. Я пытаюсь создать контекстное меню, которое появляется при щелчке правой кнопкой мыши на значке в трее. Вот XAML:

<Window.Resources>
        <ContextMenu x:Key="NotifierContextMenu" Placement="MousePoint">
            <MenuItem Header="Exit" Click="Menu_Exit"/>
        </ContextMenu>
    </Window.Resources>

А вот код позади:

void NotifyIcon_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (e.Button == System.Windows.Forms.MouseButtons.Right)
            {
                var menu = this.FindResource("NotifierContextMenu") as ContextMenu;
                menu.IsOpen = true;
            }
        }

        protected void Menu_Exit(object sender, RoutedEventArgs e)
        {
            NotifyIcon.Visible = false;
            Application.Current.Shutdown();
        }

Проблема, с которой я столкнулся, заключается в том, что когда вы щелкаете правой кнопкой мыши по значку, появляется сообщение об ошибке, что NotifierContextMenu не может быть найден. Чего мне не хватает?

1 Ответ

2 голосов
/ 15 января 2011

Я попробовал это сам без проблем.Ваш обработчик события MouseDown фактически является частью того же класса, что и NotifierContextMenu, верно?

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

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