1.WPF程序在XAML文件中设置任务栏图标

<Window x:Class="ShAirportDataSync.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:ShAirportDataSync"
        mc:Ignorable="d"
        Title="窗体标题" Icon="logo_64X64.ico" Height="500" Width="850">
    <!--使用Window的Icon属性设置图标-->
    <Grid>
    ******
    </Grid>
</Window>


2.WPF程序设置通知栏图标

NotifyIcon notifyIcon;
public MainWindow()
{
    InitializeComponent();
    //图标
    notifyIcon = new NotifyIcon();
    //notifyIcon.Icon = new System.Drawing.Icon("NotifyIcon.ico");
    notifyIcon.Icon = System.Drawing.Icon.ExtractAssociatedIcon(System.Windows.Forms.Application.ExecutablePath);
    notifyIcon.BalloonTipText = "提示文字****";
    notifyIcon.ShowBalloonTip(3000);
    notifyIcon.Visible = true;
}


3.WPF程序通知栏右键菜单

//图标右键菜单
notifyIcon.ContextMenu = new ContextMenu(new []
{
    new MenuItem("隐藏窗体", (sender, args) =>
    {
        Visibility = System.Windows.Visibility.Hidden;
        ShowInTaskbar = false;
    }),
    new MenuItem("打开窗体", (sender, args) =>
    {
        Visibility = System.Windows.Visibility.Visible;
        ShowInTaskbar = true;
        Activate();
    }),
    new MenuItem("退出程序", (sender, args) => 
    {
        System.Windows.Application.Current.Shutdown();
    })
});
//双击通知栏图标
notifyIcon.MouseDoubleClick += (sender, args) =>
{
    Visibility = System.Windows.Visibility.Visible;
    ShowInTaskbar = true;
    Activate();
};


4.关闭WPF窗体到后台运行

protected override void OnClosing(CancelEventArgs e)
{
    //取消关闭窗体
    e.Cancel = true;
    //将窗体变为最小化
    this.WindowState = WindowState.Minimized;
    //不显示在系统任务栏
    this.ShowInTaskbar = false;
}