如何将 Click 事件添加到 WPF NotifyIcon 中的上下文菜单按钮?

How to add to Click event to Context Menu buttons in WPF NotifyIcon?

我正在制作一个在 WPF 中具有通知图标的应用程序。我正在使用 HardCodet NotifyIcon. They do have a tutorial on code project,它非常有用,但它没有说明如何在按下上下文菜单中的按钮时设置 OnClickClick 事件。

我已经遍历了 NotifyIcon.ContextMenu.ItemsNotifyIcon.ContextMenu.Items.GetItemAt(i) (TaskbarIcon NotifyIcon = (TaskbarIcon) FindResource("MyNotifyIcon")) 中的每个 属性,但我什么也没找到。我还尝试将按钮类型转换为 MenuItem 并使用它的 Click 事件,但它没有帮助。

这是我的 App.xaml:

<Application.Resources>
    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:tb="http://www.hardcodet.net/taskbar">
        <tb:TaskbarIcon x:Key="MyNotifyIcon"
              ToolTipText="Hello There">
            <tb:TaskbarIcon.ContextMenu>
                <ContextMenu Background="White">
                    <MenuItem Header="Open"/>
                    <MenuItem Header="Settings"/>
                    <MenuItem Header="Sign Out"/>
                    <MenuItem Header="Help"/>
                    <MenuItem Header="Exit"/>
                </ContextMenu>
            </tb:TaskbarIcon.ContextMenu>
        </tb:TaskbarIcon>
    </ResourceDictionary>
</Application.Resources>

我需要按钮来控制 MainWindow 例如更改 Visibility 等..

与其他控件没有区别,您只需在每个 MenuItem.

上设置一个 Click 处理程序即可
<MenuItem Header="Open" Click="Open_OnClick"/>

在您的示例中,您将在 App.xaml.cs 中实现事件处理程序。

public partial class App : Application
{
   // ...application code.

   private void Open_OnClick(object sender, RoutedEventArgs e)
   {
      // ...do something.
   }
}

您还可以将视图模型作为 DataContext 分配给 TaskbarIcon 并改用命令。