8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

我可以在 WPF 中使用 NotifyIcon 吗?

HamZa Samha 2月前

63 0

我想使用 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();
    }

 }
帖子版权声明 1、本帖标题:我可以在 WPF 中使用 NotifyIcon 吗?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由HamZa Samha在本站《wpf》版块原创发布, 转载请注明出处!
最新回复 (0)
  • Luis 2月前 0 只看Ta
    引用 2

    NotifyIcon 在 WPF 中没有实现,因为它在 Forms 中,但是您仍然可以使用 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

  • 谢谢。在应用程序的引用中添加 System.Windows.Forms 和 System.Drawing(用于图标)后,它就可以正常工作了。

  • 您可以在 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

    更多信息请点击 此处 .

  • gpo 2月前 0 只看Ta
    引用 5

    是的,这是可能的,而且我在我的个人项目中成功地使用了它。Philip Sumi 编写了一个出色的控件 http://www.hardcodet.net/projects/wpf-notifyicon 。我正好用过这个,它工作得很好,看起来也很漂亮(主观)。

    image

    请注意:注意许可条款,检查是否可以在 您的 项目中使用它。

  • @Dinesh:您需要像使用 WPF 控件一样使用它。这不是可以在这里简短回答的问题。下载代码,运行示例并查看如何使用它。

  • System.Windows.Forms...我的答案中的第一个链接概述并解释了所有内容。此外,请查看 msdn.microsoft.com/en-us/library/… 以了解有关 NotifyIcon 的更深入了解

  • @Tigran Orz,这是一个愚蠢的问题。。我花了一个下午的时间思考。。我按照作者的无窗口示例操作。但作为 WPF 新手,我没有意识到有一个与 APP.xaml 关联的 APP.xaml.cs 文件,其中示例代码中有几行。。。现在一切都正常了。。

返回
作者最近主题: