[C#] Hướng dẫn Overlay Icon dưới Taskbar của ứng dụng - lap trinh csharp
Hôm nay, mình xin hướng dẫn cho các một tuts về cách tạo Overlay Icon Real time của ứng dụng dưới thanh taskbar trong lap trinh cshap. Chắc bạn bạn đã từng thấy, khi các bạn chạy ứng dụng sẽ có một icon ứng dụng của bạn hiển thị ở thanh taskbar bên ...
Hôm nay, mình xin hướng dẫn cho các một tuts về cách tạo Overlay Icon Real time của ứng dụng dưới thanh taskbar trong lap trinh cshap.
Chắc bạn bạn đã từng thấy, khi các bạn chạy ứng dụng sẽ có một icon ứng dụng của bạn hiển thị ở thanh taskbar bên dưới. Các bạn nào đang sử dụng ứng dụng facebook hoặc zalo.
Khi các bạn nhận được một tin nhắn mới thì phía dưới icon ứng dụng của bạn xuất hiện thêm các số 1-n, theo số tin nhắn mới mà bạn chưa đọc.
Hoặc khi các bạn download, các bạn để ý dưới thanh taskbar cũng có 1 progress chạy theo.
Để làm được vấn đề đó, mình sẽ hướng dẫn các bạn sử dụng thư viện Microsoft.WindowsAPICodePack.Taskbar. Thư viện này sẽ hỗ trợ cho chúng ta làm được những việc mà mình vừa nói trên.
Giao diện Demo ứng dụng Overlay Icon Taskbar in Lap trinh csharp
+ Đầu tiên mình xin hướng dẫn các bạn cài đặt thư viện WindowsAPICodePack.
Các bạn mở cửa số command line của Nuget, sau đó gõ lệnh cài đặt như sau:
PM>Install-Package Microsoft.WindowsAPICodePack-Shell
Sau khi cài đặt xong các bạn tiến hành import thư viện vào để sử dụng.
using System; using System.Drawing; using System.Windows.Forms; using Microsoft.WindowsAPICodePack.Taskbar; using System.Threading; using System.Runtime.InteropServices; using System.Security.Permissions;
* Có một vấn đề mình xin lưu ý với các bạn, ứng dụng này chỉ sử dụng trên trên Windows Vista trở lên mới sử dụng được nhé.
Các bạn có thể dùng hàm dưới đây để kiểm tra, nếu Operation mà chúng ta đang sử dụng dưới Windows Vista thì ko chạy ứng dụng
private void Form1_Load(object sender, EventArgs e) { if (!TaskbarManager.IsPlatformSupported) { MessageBox.Show("Overlay Icon không hỗ trợ cho hệ thống của bạn" + Environment.NewLine + " Chỉ hỗ trợ từ windows 7 trở lên."); // Exit the current process Application.Exit(); } }
- Tiếp đến các bạn viết hàm chọn sự kiện chọn Icon thì overicon dưới thanh taskbar bằng lập trình C#
private void ShowOrHideOverlayIcon() { if (checkBox1.Checked) { Icon icon = null; switch (comboBox1.SelectedIndex) { case 0: icon = Icon.FromHandle(Properties.Resources.GreenToy.GetHicon()); break; case 1: icon = Icon.FromHandle(Properties.Resources.NinjaToy.GetHicon()); break; case 2: icon = Icon.FromHandle(Properties.Resources.BlueToy.GetHicon()); break; default: MessageBox.Show("Vui lòng chọn Icon Overlay!"); break; } TaskbarManager.Instance.SetOverlayIcon(icon, comboBox1.SelectedIndex.ToString()); } else TaskbarManager.Instance.SetOverlayIcon(null, null); }
- Tiếp đến là mình viết hàm cho progress bar khi change combox để hiển thị progress
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) { int max = 25; var prog = Microsoft.WindowsAPICodePack.Taskbar.TaskbarManager.Instance; if(comboBox2.SelectedIndex == 0) { prog.SetProgressState(Microsoft.WindowsAPICodePack.Taskbar.TaskbarProgressBarState.Normal); }else if(comboBox2.SelectedIndex == 1) { prog.SetProgressState(Microsoft.WindowsAPICodePack.Taskbar.TaskbarProgressBarState.Error); } else if(comboBox2.SelectedIndex == 2) { prog.SetProgressState(Microsoft.WindowsAPICodePack.Taskbar.TaskbarProgressBarState.Paused); } else if(comboBox2.SelectedIndex == 3) { prog.SetProgressState(Microsoft.WindowsAPICodePack.Taskbar.TaskbarProgressBarState.NoProgress); } else { prog.SetProgressState(Microsoft.WindowsAPICodePack.Taskbar.TaskbarProgressBarState.Indeterminate); } for (int i = 0; i < max; i++) { prog.SetProgressValue(i, max); Thread.Sleep(100); } }
Vậy là xong, chúc các bạn thành công!