我刚刚开始使用 C#/WPF 应用程序,从 WPF Contrib 项目 中使用 NotifyIcon。我可以启动程序,将 "Exit" MenuItem 添加到 NotifyIcon 的 ContextMenu,并将该项链接到一个简单运行 Application.Current.Shutdown() 方法的方法中。
这会关闭主窗口和 NotifyIcon,但仍有某些东西在运行 - 在 VS 中运行时,它不会离开调试模式。仍在运行什么?或者我如何检查?
编辑
我刚刚尝试添加一个按钮来调用 Application.Current.Shutdown(),并且它能够正常退出。只有从 NotifyIcon 调用时才会出现问题。为什么会这样呢?
澄清一下,我有以下 XAML:
<Window x:Class="VirtualBoxManager.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:av="http://schemas.codeplex.com/wpfcontrib/xaml/presentation"
Title="VirtualBox Manager" Height="350" Width="525"
ShowInTaskbar="False" WindowStyle="None">
<Grid>
<av:NotifyIcon Icon="/icon/path"
Text="Virtual Machine Manager"
Name="notifyIcon">
<FrameworkElement.ContextMenu>
<ContextMenu>
<MenuItem Header="Exit" Click="MenuItemExit_Click" />
</ContextMenu>
</FrameworkElement.ContextMenu>
</av:NotifyIcon>
<Button Content="Button" Click="button1_Click" />
</Grid>
button1_Click和MenuItemExit_Click是相同的,但前者能够成功退出应用程序,而后者则不能。
进一步尝试:即使我将Application.Current.Shutdown()移到另一个方法中并调用该方法,增加了一层间接性,按钮仍然有效,而图标则不起作用。
找到解决方案?
刚刚在这个线程中发现了解决方法,在这里可以工作。我不完全理解正在发生的事情,因此如果有人愿意解释,我会非常感激。