我想使用 WPF 将应用程序最小化到系统托盘。\'NotifyIcon\' 是实现此结果的唯一方法吗?如果是,在 WPF 中使用 \'NotifyIcon\' 需要哪个命名空间?如果可能的话,使用 \'NotifyIcon\' 需要哪个命名空间?
我想使用 WPF 将应用程序最小化到系统托盘。\'NotifyIcon\' 是实现此结果的唯一方法吗?如果是,在 WPF 中使用 \'NotifyIcon\' 需要哪个命名空间?
如果可以使用“NotifyIcon”,请提供一些提示,我如何在主窗口中使用它?
我的主窗口是,
public partial class MonthView : MetroWindow
{
public DateTime SelectedDate { get; set; }
public MonthView()
{
InitializeComponent();
calMain.DisplayDate = DateTime.Today;
Globals._globalController = new AppController();
Globals._globalController.appTaskManager.setupLocal();
Globals._globalController.setMonthViewWindow(this);
}
public void calItemSelectedDate(object sender, SelectionChangedEventArgs e)
{
DateTime d;
if (sender is DateTime)
{
d = (DateTime)sender;
}
else
{
DateTime.TryParse(sender.ToString(), out d);
}
SelectedDate = d;
ShowActivity(d);
}
public void ShowActivity(DateTime date)
{
DayView Activity = new DayView(date);
Activity.Show();
this.Hide();
}
private void SetButton_Click(object sender, RoutedEventArgs e)
{
SettingsView set = new SettingsView();
set.Show();
this.Hide();
}
}
您可以在 App.xaml.cs 中设置 NotifyIcon 的代码
using System.Drawing;
namespace DDD
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
System.Windows.Forms.NotifyIcon nIcon = new System.Windows.Forms.NotifyIcon();
public App()
{
nIcon.Icon = new Icon(@"path to ico");
nIcon.Visible = true;
nIcon.ShowBalloonTip(5000, "Title", "Text", System.Windows.Forms.ToolTipIcon.Info);
nIcon.Click += nIcon_Click;
}
void nIcon_Click(object sender, EventArgs e)
{
//events comes here
MainWindow.Visibility = Visibility.Visible;
MainWindow.WindowState = WindowState.Normal;
}
}
}
在您的 Mainwindow.xaml.cs 中:
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel = true;
this.Visibility = Visibility.Hidden;
}
确保 Window_Closing 绑定到主窗口的关闭事件。
如果您“关闭”主窗口,窗口可见性将被设置为隐藏,但您的应用程序仍将运行。只需单击通知区域中的 NotifyIcon,您的窗口就会返回。
编辑:
有一种非常简单但功能强大的方法可以 toast
通过 Windows 通知中心显示消息。在 Windows 10 中,这是显示通知的最常见方式,不再通过这种方式显示 ShowBalloonTip
。
更多信息请点击 此处 .