3

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

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

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

我尝试过的是:

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

menu不知道有什么IsOpen价值。

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

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

4

1 回答 1

7

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

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

  • 下载解决方案
  • 建立图书馆
  • 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 助手库,你就会知道开源助手中“埋在某处”的字面意思。

于 2013-05-14T15:22:41.140 回答