c# - 我可以在 WPF 中使用 NotifyIcon 吗?

标签 c# wpf windows wpf-controls 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();
    }

 }

最佳答案

NotifyIcon 不像在 Forms 中那样在 WPF 中实现,但您仍然可以使用 Windows Form NotifyIcon,它位于 System.Windows 中。形成 namspace。

看看这些教程,它们可能满足您的需求:

简单的解决方案,直接使用NotifyIcon: http://www.abhisheksur.com/2012/08/notifyicon-with-wpf-applications.html

更高级的解决方案,基于 NotifyIcon 的新库具有更多功能: http://www.codeproject.com/Articles/36468/WPF-NotifyIcon

有关 NotifyIcon 的更多信息可在此处找到: http://msdn.microsoft.com/en-us/library/system.windows.forms.notifyicon.aspx

关于c# - 我可以在 WPF 中使用 NotifyIcon 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17674761/

相关文章:

java - 如何在 Windows 上找到正在运行的 Java 进程的进程 ID?以及如何单独杀死进程?

c# - 我们如何假设 Generic<T> 类上有一个 bool 属性,其中 T 是自动生成的 LINQ2SQL 类

c# - 如何声明两个类以便将它们传递给同一个函数?

c# - 从 MemoryStream 加载时位图中没有透明度

wpf - 将位于数据网格内的按钮的 IsEnabled 属性绑定(bind)到变量

windows - 使用POSIX API设置Windows创建日期

windows - 有没有我可以在 Windows 上安装的 kdevelop 版本?

c# - AppDomains 与强大的服务器

c# - 如何仅在 wpf 列表框的一行上更改前景色?

c# - IsMouseOver 对 DockPanel 中的某些元素返回 false