WPF实现应用程序托盘显示

我找到一个非常简单实用的静态类,可以让我们使用非常轻松地实现系统托盘。话不多说直接贴代码:public class NotifyIconBar{ public

我找到一个非常简单实用的静态类,可以让我们使用非常轻松地实现系统托盘。

话不多说直接贴代码:

public class NotifyIconBar
{
    public static NotifyIconBar Instance;
    public static event MouseEventHandler DoubleClick;
    public NotifyIcon Notify { get; set; }
    static NotifyIconBar() { Instance = new NotifyIconBar(); }
    private NotifyIconBar()
    {
        Notify = new NotifyIcon();
        Notify.Icon = new Icon(System.Windows.Application.GetResourceStream(new Uri("Resources/favicon.ico", UriKind.Relative)).Stream);
        Notify.MouseDoubleClick += Nofity_MouseDoubleClick;
        Notify.MouseClick += Nofity_MouseClick;
        Notify.Visible = true;
    }
    private void Nofity_MouseDoubleClick(object sender, MouseEventArgs e)
    {
        if (DoubleClick != null) { DoubleClick(sender, e); }
    }
    private void Nofity_MouseClick(object sender, MouseEventArgs e)
    {
        System.Windows.Controls.ContextMenu NotifyIconMenu = (System.Windows.Controls.ContextMenu)App.Current.FindResource("NotifyIconMenu");
        if (e.Button == MouseButtons.Right) { NotifyIconMenu.IsOpen = true; } else { NotifyIconMenu.IsOpen = false; }
    }
    public void DisposeNotifyIcon() { Notify?.Dispose(); }
}

App.xaml

<Application x:Class="SmallTool.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:SmallTool"
             StartupUri="SyncTime.xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ContextMenu x:Key="NotifyIconMenu" StaysOpen="False">
                <MenuItem Name="MenuOpen" Click="MenuOpen_Click" Header="打开" />
                <MenuItem Name="MenuExit" Click="MenuExit_Click" Header="退出" />
            </ContextMenu>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/Resources/Styles.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>

App.xaml

(152)
打赏 支付红包 支付红包 微信打赏 微信打赏
上一篇 2024-01-08 10:57:35
下一篇 2024-01-19 10:17:38

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信