zoukankan      html  css  js  c++  java
  • WPF控件NotifyIcon

    1.在什么地方找到NotifyIcon

    普通的WPF控件基本上都是在该命名空间下:System.Windows.Controls,该命名空间在C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationFramework.dll下。也就是说是.net framework3.0之后才支持的。

    那难道在WPF下就不能使用NotifyIcon了吗?

    在MSDN上有以下关于通知图标的示例:http://msdn.microsoft.com/zh-cn/library/aa972170(VS.90).aspx

    using System;
    using System.Windows;
    
    using System.Windows.Forms; // NotifyIcon control
    using System.Drawing; // Icon
    
    public partial class MainWindow : Window
    {
        NotifyIcon notifyIcon;
    
        public MainWindow()
        {
            InitializeComponent();
        }
    
        void click(object sender, RoutedEventArgs e)
        {
            // Configure and show a notification icon in the system tray
            this.notifyIcon = new NotifyIcon();
            this.notifyIcon.BalloonTipText = "Hello, NotifyIcon!";
            this.notifyIcon.Text = "Hello, NotifyIcon!";
            this.notifyIcon.Icon = new System.Drawing.Icon("NotifyIcon.ico");
            this.notifyIcon.Visible = true;
            this.notifyIcon.ShowBalloonTip(1000);
        }
    }

    其中包含NotifyIcon控件,请注意它的命名空间:System.Windows.Forms; ,该命名空间是在C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll下。所以说此处使用的NotifyIcon控件其实是.net framework 2.0就提供的在winform下面是用的控件。

    2.怎么使用NotifyIcon

    App.xaml

    <Application x:Class="NotifyIconStd.App"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 ShutdownMode="OnExplicitShutdown" Startup="ApplicationStartup" Exit="ApplicationExit">
        <Application.Resources>
             
        </Application.Resources>
    </Application>
    

    App.xaml.cs

    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Windows;
    using System.Windows.Forms;
    using Application = System.Windows.Application;
    
    namespace NotifyIconStd
    {
        public partial class App : Application
        {
            private static NotifyIcon trayIcon;
    
            private void ApplicationStartup(object sender, StartupEventArgs e)
            {
                RemoveTrayIcon();
                AddTrayIcon();
            }
    
            private void AddTrayIcon()
            {
                if (trayIcon != null)
                {
                    return;
                }
                trayIcon = new NotifyIcon
                {
                    Icon = new System.Drawing.Icon("notifyIcon.ico"),
                    Text = "NotifyIconStd"
                };
                trayIcon.Visible = true;
    
                ContextMenu menu = new ContextMenu();
    
                MenuItem closeItem = new MenuItem();
                closeItem.Text = "Close";
                closeItem.Click += new EventHandler(delegate { this.Shutdown(); });
    
                MenuItem addItem = new MenuItem();
                addItem.Text = "Menu";
    
                menu.MenuItems.Add(addItem);
                menu.MenuItems.Add(closeItem);
    
                trayIcon.ContextMenu = menu;    //设置NotifyIcon的右键弹出菜单
            }
    
            private void RemoveTrayIcon()
            {
                if (trayIcon != null)
                {
                    trayIcon.Visible = false;
                    trayIcon.Dispose();
                    trayIcon = null;
                }
            }
    
            private void ApplicationExit(object sender, ExitEventArgs e)
            {
                RemoveTrayIcon();
            }
        }
    }

    该示例程序程序只是在程序启动时,同时启动了一个NotifyIcon,没有其他主程序界面,可以在MenuItem的事件中添加关于弹出其他窗口的处理。

    Celery 标签: WPF
  • 相关阅读:
    TDSCDMA手机(WM系统)信号的采集?
    vc2008 + libpq + postgresql 8.4 配置
    code complete 2阅读笔记(第二章)
    Python 学习笔记(一)语句,变量,函数
    CS通用模型设计,socket,tcp实现()
    VS2005,VS2008编辑器设置
    设计模式之个人理解单例模式
    请教:C#网络编程相关的知识,建立socket服务器时向客户端连接,就建立不了了?
    服务器开发
    年终总结
  • 原文地址:https://www.cnblogs.com/celery94/p/1861371.html
Copyright © 2011-2022 走看看