繁体   English   中英

托盘图标的 WPF 上下文菜单

[英]WPF ContextMenu for tray icon

我有一个 WPF 应用程序,我可以将其最小化到托盘。 当我正常单击它时,窗口再次显示。

现在我想知道如何创建一个简单的ContextMenu

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

我试过的东西是:

ContextMenu menu = (ContextMenu)this.FindResource("NotifierContextMenu");
menu.IsOpen = true;

menu不知道任何IsOpen值。

其他例子喜欢使用很多不同的东西。 其中之一要求我出于某种原因创建一个 HostManager。

我只需要一个简单的ContextMenu 我怎样才能做到这一点?

正如@HB 提到的, Hardcodet的 NotifyIcon非常适合 WPF 任务栏图标。 糟透了,你没有用 WPF 开箱即用,但你最好使用它并解决你的问题,而不是等待微软修复它(他们真的应该将该库添加到标准中)

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

  • 下载解决方案
  • 建立图书馆
  • 如果您有,请将其添加到您的源代码管理中,并在您的项目中添加对它的引用( Hardcodet.Wpf.TaskbarNotification.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>

和 MainWindow.xaml.cs 以及您需要的点击处理程序:

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

我确实建议花一些时间查看库源代码附带的示例,以熟悉可用选项。 相信我 wpf 在帮助程序库方面太容易了。 尝试一些 qt 助手库,你就会知道“埋在某处”在开源助手中的字面意思。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM