我有一个WPF应用程序,我可以最小化到托盘。当我正常点击它时,窗口再次显示。
现在我想知道如何创建一个简单的ContextMenu
?
ContextMenu
必须填充x选项,其中onclick将运行一个函数。现在我只需要一个'Exit'项链接到'Exit_Click'方法。
我尝试的是:
ContextMenu menu = (ContextMenu)this.FindResource("NotifierContextMenu");
menu.IsOpen = true;
menu
不知道任何IsOpen
值。
其他例子喜欢使用很多不同的东西。 One of them requires me to create a HostManager for some reason.
我只需要一个简单的ContextMenu
。我怎样才能做到这一点?
答案 0 :(得分:7)
作为@ H.B。提到Hardcodet's 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帮助程序库,你就会知道“隐藏在某个地方”的字面意思是在开源助手中。