wpf工程中加入Hardcodet.NotifyIcon.Wpf生成托盘
1、在项目中用nuget引入Hardcodet.NotifyIcon.Wpf。如下图所示。
2、在App.xaml中创建托盘界面,代码是写在 App.xaml 里面
注意在application中一定要加入这一行代码: xmlns:tb=”http://www.hardcodet.net/taskbar”
然后在中加入如下代码
<!---->
3、创建ViewModelBase类。再创建TaskbarIconViewModel类继承ViewModelBase类
internal class ViewModelBase : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged ;
protected void RaisePropertyChanged(string property)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(property));
}
}
internal class TaskbarIconViewModel : ViewModelBase
{
private string systemTime;
public string SystemTime
{
get { return systemTime; }
set { systemTime = value; RaisePropertyChanged("SystemTime"); }
}
public DelegateCommand NotifyCommand
{
get
{
return new DelegateCommand((type) =>
{
if (type.ToString() == "0")
Application.Current.MainWindow.Hide();
if (type.ToString() == "1")
{
Application.Current.MainWindow.Show();
Application.Current.MainWindow.Activate();
}
if (type.ToString() == "99")
Application.Current.Shutdown();
});
}
}
}
、在App.xaml.cs中写入如下代码:
private static System.Threading.Mutex mutex;
protected override void OnStartup(StartupEventArgs e)
{
mutex = new System.Threading.Mutex(true, "TemCollSrvTwo");
if (mutex.WaitOne(0, false))
{
base.OnStartup(e);
}
else
{
MessageBox.Show("程序已经在运行!", "提示");
this.Shutdown();
}
mTaskbarIcon = (TaskbarIcon)FindResource("Taskbar");
mTaskbarIcon.DataContext = new TaskbarIconViewModel();
}
public static TaskbarIcon mTaskbarIcon;
4031
5、效果展示