C# 托盘图标的WPF上下文菜单

C# 托盘图标的WPF上下文菜单,c#,wpf,contextmenu,tray,C#,Wpf,Contextmenu,Tray,我有一个WPF的应用程序,我可以尽量减少到托盘。当我单击它时,窗口再次显示 现在我想知道如何创建一个简单的上下文菜单 ContextMenu必须填充x个选项,onclick将运行一个函数。现在我只需要一个“退出”——链接到“退出单击”方法的项目 我试过的是: ContextMenu menu = (ContextMenu)this.FindResource("NotifierContextMenu"); menu.IsOpen = true; 菜单不知道任何IsOpen值 其他的例子喜欢使用很

我有一个WPF的应用程序,我可以尽量减少到托盘。当我单击它时,窗口再次显示

现在我想知道如何创建一个简单的
上下文菜单

ContextMenu
必须填充x个选项,onclick将运行一个函数。现在我只需要一个“退出”——链接到“退出单击”方法的项目

我试过的是:

ContextMenu menu = (ContextMenu)this.FindResource("NotifierContextMenu");
menu.IsOpen = true;
菜单
不知道任何
IsOpen

其他的例子喜欢使用很多不同的东西

我只需要一个简单的
上下文菜单
。我怎样才能做到这一点呢?

正如@H.B.所提到的,对于WPF任务栏图标来说非常好。糟糕的是,你不能用WPF从盒子里拿出来,但是你最好使用它并解决你的问题,而不是等待微软来解决它(他们真的应该把这个库添加到标准中)

现在要解决您的问题(使用上述解决方案):

  • 下载解决方案
  • 建图书馆
  • 如果有,请将其添加到源代码管理中,并在项目中添加对其的引用(
    Hardcodet.Wpf.taskbannotification.dll
现在,在MainWindow.xaml中,您可以使用如下内容:

<Window ...
        xmlns:tb="http://www.hardcodet.net/taskbar"
        ...>
  ...
  <Grid>
    <tb:TaskbarIcon>
      <tb:TaskbarIcon.ContextMenu>
        <ContextMenu>
          <MenuItem Click="Exit_Click"
                    Header="Exit" />
        </ContextMenu>
      </tb:TaskbarIcon.ContextMenu>
    </tb:TaskbarIcon>
    ...
  </Grid>
</Window>
我建议您花一些时间查看库源代码附带的示例,以熟悉可用的选项。相信我,wpf对于帮助程序库来说太容易了。尝试一些qt助手库,您就会知道“埋藏在那里的某处”在开源助手中的字面意思

private void Exit_Click(object sender, RoutedEventArgs e) {
  Application.Current.Shutdown();
}