2012-04-19 27 views
19

Tôi đang tạo một ứng dụng WPF mới và tôi cần có khả năng giảm thiểu ứng dụng và có được cái đẹp và snug trong khay hệ thống, ngay bên cạnh đồng hồ (hoặc trong khu vực chung đó).Cách dễ nhất để có một chương trình giảm thiểu chính nó vào khay hệ thống bằng cách sử dụng .NET 4

Tính năng này phải hoạt động trên Windows XP, Vista và 7. Tôi không phải hỗ trợ các phiên bản Windows cũ hơn.

Cách đơn giản nhất để đạt được điều này nếu tôi đang sử dụng .NET 4 là gì?

Trả lời

46

Example in MSDN forum

Dưới đây là một ví dụ nhanh để hiển thị như thế nào để giảm thiểu các vùng thông báo. Bạn cần phải thêm tham chiếu đến các System.Window.Forms và System.Drawing hội đồng.

public partial class Window1 : System.Windows.Window 
{ 

    public Window1() 
    { 
     InitializeComponent(); 

     System.Windows.Forms.NotifyIcon ni = new System.Windows.Forms.NotifyIcon(); 
     ni.Icon = new System.Drawing.Icon("Main.ico"); 
     ni.Visible = true; 
     ni.DoubleClick += 
      delegate(object sender, EventArgs args) 
      { 
       this.Show(); 
       this.WindowState = WindowState.Normal; 
      }; 
    } 

    protected override void OnStateChanged(EventArgs e) 
    { 
     if (WindowState == System.Windows.WindowState.Minimized) 
      this.Hide(); 

     base.OnStateChanged(e); 
    } 
} 
+0

Vì vậy, tôi phải có Biểu tượng có tên là "Main.ico" trong ApplicationDirectory của mình? –

+0

LeGrandMere - cảm ơn sự khắc phục tuyệt vời của succint. Felix D: Bạn có thể thêm biểu tượng bằng cách sử dụng: var iconStream = Application.GetResourceStream (new Uri ("gói: // application: ,,,/LaunchPad.UI; component/Images/Launch.ico")) ?. Stream; sau đó làm var ni = new NotifyIcon { Icon = new Icon (biểu tượngStream), Hiển thị = true }; – yonsk

9

Tôi đã thành công khi sử dụng triển khai biểu tượng thông báo miễn phí này trong WPF.

http://www.hardcodet.net/projects/wpf-notifyicon

Thiết lập và cung cấp mã nguồn khá đơn giản. Nó không dựa trên Windows Forms, do đó, nó 'tinh khiết' WPF và rất tùy biến.

Bạn có thể tìm thấy hướng dẫn về cách sử dụng nó trên CodeProject.

5

Thêm notifyIcon vào ứng dụng của bạn từ Hộp công cụ.
Chọn chính của bạn form >> chuyển đến Properties >> chọn biểu tượng Events >> dưới FromClosing event loại MainForm_FormClosing >> nhấn enter.

enter image description here

Trong mở .cs tập tin nhập sau hành động sự kiện:

private void MainForm_FormClosing(object sender, FormClosingEventArgs e) 
{ 
    this.Hide(); 
    notifyIcon.Visible = true; 
    ShowInTaskbar = false; 
    e.Cancel = true; 
} 

Bây giờ cửa sổ MẪU chính của bạn sẽ được giảm thiểu để khay hệ thống khi bạn click vào nút X. Bước tiếp theo là lấy FORM trở lại trạng thái bình thường.
Đi tới số Properties trong số notifyIcon >> tìm DoubleClick event >> nhập NotifyIcon_DoubleClick và nhấn enter để nhận chức năng sự kiện được tạo cho bạn.

enter image description here

Đặt mã này vào sự kiện của bạn:

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

Bây giờ, nếu bạn muốn chắc vào biểu tượng thông báo bằng phong cách lạ mắt bạn có thể thêm menu ngữ cảnh và liên kết nó với thông báo biểu tượng của bạn , vì vậy bạn sẽ có được một cái gì đó như thế:

enter image description here

đây là whe tái bạn liên kết ContextMenuStrip để NotifyIcon:

enter image description here

Chúc may mắn!

+0

Dường như với tôi rằng bạn đang mô tả Windows Forms thay vì WPF. –

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