我想使用WPF将应用程序最小化到系统托盘。是“NotifyIcon”是获得此结果的唯一方法吗?如果是,在WPF中使用“NotifyIcon”需要哪个 namespace ?

如果可能,请使用“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();
    }

 }

最佳答案

WPF中没有像在Forms中那样实现NotifyIcon,但是您仍然可以使用Windows Form NotifyIcon,它位于System.Windows.Forms命名空间中。

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

直接使用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/

10-09 07:27