2012-01-12 24 views
10

Tôi đã tự hỏi, bất cứ khi nào bạn gọi phương thức ShowBalloonTip của lớp NotifyIcon, bạn nhận được một tooltip bóng như thế này:Làm thế nào để tạo tooltips phong phú và bong bóng giàu trong khu vực thông báo

Standard Baloon Tip
Fig1: Chuẩn Balloon Tooltip



Một số ứng dụng và sản phẩm của Microsoft có thể hiển thị nhiều hơn các mẹo bóng đơn giản này.
Dưới đây là một số mẫu:

Windows Update Tip Fig2: Windows Update Balloon Tooltip


Driver Installation Tip http://i.msdn.microsoft.com/dynimg/IC295019.png
Fig3: Phần cứng Driver cài đặt Balloon Tooltip


USB Safely Remove
Fig4: Phần cứng diệt Tooltip (Chương trình: USB Safely Remove)



Một cái nhìn tốt ở Hình 2, 3 và 4 cho thấy họ không phải là tiêu chuẩn tooltips bóng!

Fig2 có hình dạng khác, có thể từ cài đặt thuộc tính Region. Nó cũng có một biểu tượng tùy chỉnh lớn hơn nhiều so với tiêu chuẩn ToolTipIcon.

Fig3 sử dụng hình dạng chuẩn (tôi nghĩ) nhưng có biểu tượng tùy chỉnh không cần nói lớn hơn kích thước mặc định là ToolTipIcon.

Fig4 sử dụng tiêu chuẩn ToolTipIcon nhưng có hình dạng khác.


Câu hỏi của tôi là làm cách nào để tạo một trong các chú giải công cụ bóng 'giàu' được nhìn thấy trong vùng thông báo trong .NET? Tôi có thể xử lý WinAPI cũng như nó có thể tạo ra đầu ra cần thiết.

+0

* Giao diện đẹp của tôi không cho tôi biết điều đó. Có gì khác về cái nhìn của bạn? Có, họ sử dụng các biểu tượng tùy chỉnh lớn. Điều đó đã được hỗ trợ từ Windows XP SP2. Sử dụng chức năng ['Shell_NotifyIcon'] (http://msdn.microsoft.com/en-us/library/windows/desktop/bb762159.aspx) để tạo chúng. –

Trả lời

5

Bạn phải sử dụng chức năng Win32 Shell_NotifyIcon. Bạn có thể đặt thành viên dwInfoFlags của cấu trúc NOTIFYICONDATA thành NIIF_USER để sử dụng biểu tượng tùy chỉnh cho chú giải công cụ chú giải.

Trên Windows XP Gói dịch vụ 2 trở lên, bạn có thể sử dụng thành viên hIcon để chỉ định biểu tượng tùy chỉnh.

Trên Windows Vista và sau đó cấu trúc NOTIFYICONDATA chứa thành viên bổ sung hBalloonIcon. Bạn có thể sử dụng thành viên này để chỉ định biểu tượng tùy chỉnh nếu bạn đã đặt thành viên cbSize thành kích thước chính xác của cấu trúc NOTIFYICONDATA mở rộng.

0

Kiểm tra này ra:

http://www.codeproject.com/KB/WPF/WPF_TaskbarNotifier.aspx

hoặc

www.codeproject.com/KB/WPF/wpf_notifyicon.aspx

tùy chọn khác là để làm của riêng hình thức thông báo khinh khí cầu của bạn, thì bạn sẽ có thông báo với nền hoa và viền màu hồng :) BTW: có thể có một số chức năng trong đó.

Như trong ví dụ này:

http://i.stack.imgur.com/QtA0Y.jpg < < Hình ảnh Ví dụ

Tạo biểu mẫu mà bạn thích, Region, Controls, Etc :) và mã gì đó như:

void notifyIcon_MouseMove(object sender, MouseEventArgs e) 
    { 
     if (!this.Visible) 
     { 
      ShowPopup(); 
     } 
    } 

    Timer t = new Timer(); 
    private void ShowPopup() 
    { 
     Rectangle rect = Screen.GetWorkingArea(new Point(Screen.PrimaryScreen.Bounds.Right, Screen.PrimaryScreen.Bounds.Bottom)); 
     this.Top = rect.Bottom - this.Height; 
     this.Left = rect.Right - this.Width; 
     this.Visible = true; 

     t.Interval = 4000; 
     t.Tick += new EventHandler(t_Tick); 
     t.Start(); 
    } 

    void t_Tick(object sender, EventArgs e) 
    { 
     t.Stop(); 
     Visible = false; 
    } 

    private void Form1_Click(object sender, EventArgs e) 
    { 
     this.Visible = false; 
    } 

    private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
    { 
     notifyIcon.Visible = false; 
     notifyIcon.Dispose(); 
    } 

BTW tất cả đều trông giống nhau, với kích thước Biểu tượng khác nhau, và o Đầu tiên ne có thể vừa vặn với bên phải, trong khi tất cả các liên kết khác được căn chỉnh sang trái ... thay đổi bóng tối nhỏ v.v. :)

+0

Bạn thực sự không cần phải làm tất cả điều đó, bạn cũng không cần phải sử dụng WPF. Hỗ trợ cho điều này được xây dựng trong Windows. –

+0

Vâng các API cửa sổ có khả năng ... tôi đã không tạo ra một enogh mạnh mẽ nhưng cách dễ dàng hơn. Bạn đã nghĩ gì vậy? –

Các vấn đề liên quan