Bạn phải sử dụng điều khiển NotifyIcon từ System.Windows.Forms hoặc cách khác, bạn có thể sử dụng API biểu tượng thông báo do API Windows cung cấp. WPF Cung cấp không tương đương như vậy và nó đã được yêu cầu trên Microsoft Connect nhiều lần.
Tôi có mã trên GitHub sử dụng System.Windows.Forms
Thành phần NotifyIcon từ trong ứng dụng WPF, mã này có thể được xem tại https://github.com/wilson0x4d/Mubox/blob/master/Mubox.QuickLaunch/AppWindow.xaml.cs
Dưới đây là các bit tóm tắt:
Tạo một cửa sổ WPF với ShowInTaskbar = false và được tải ở trạng thái không nhìn thấy được.
Ở cấp độ lớp học:
private System.Windows.Forms.NotifyIcon notifyIcon = null;
Trong thời gian OnInitialize ():
notifyIcon = new System.Windows.Forms.NotifyIcon();
notifyIcon.Click += new EventHandler(notifyIcon_Click);
notifyIcon.DoubleClick += new EventHandler(notifyIcon_DoubleClick);
notifyIcon.Icon = IconHandles["QuickLaunch"];
Trong thời gian OnLoaded ():
notifyIcon.Visible = true;
Và để tương tác (được hiển thị dưới dạng notifyIcon.Click và DoubleClick ở trên):
void notifyIcon_Click(object sender, EventArgs e)
{
ShowQuickLaunchMenu();
}
Từ đây, bạn có thể tiếp tục sử dụng Điều khiển và API của WPF như menu ngữ cảnh, cửa sổ bật lên, v.v.
Nó đơn giản mà. Bạn không thực sự cần một Cửa sổ WPF để lưu trữ thành phần, đó chỉ là cách thuận tiện nhất để giới thiệu một ứng dụng vào Ứng dụng WPF (vì Cửa sổ nói chung là điểm nhập mặc định được xác định qua App.xaml), tương tự, bạn không ' Không cần WPF Wrapper hoặc kiểm soát của bên thứ 3, vì thành phần SWF được đảm bảo có trong bất kỳ cài đặt .NET Framework nào cũng có hỗ trợ WPF vì nó là một phần của .NET Framework (mà tất cả các phiên bản .NET Framework hiện tại và tương lai đều xây dựng.) Cho đến nay, không có dấu hiệu nào từ Microsoft rằng hỗ trợ SWF sẽ sớm bị loại bỏ khỏi .NET Framework.
Mong rằng sẽ giúp.
Đó là một pho mát nhỏ mà bạn phải sử dụng Thành phần khung trước 3.0 để có biểu tượng khay, nhưng có thể hiểu như Microsoft đã giải thích, không có khái niệm nào về Khay hệ thống trong phạm vi WPF. WPF là một công nghệ trình bày và Biểu tượng thông báo là một khái niệm Hệ điều hành (không phải là "Bản trình bày").