wpf 最小化托盘 demo
时间: 2023-11-04 20:02:57 浏览: 274
WPF最小化托盘(System Tray)的实现可以通过以下步骤来完成:
1. 首先,在XAML文件中创建一个托盘图标。可以使用Rectangle、Ellipse或Image等控件来作为图标,然后设置图标的宽度、高度和颜色等属性。
```xml
<Rectangle Width="16" Height="16" Fill="Red" />
```
2. 在MainWindow.xaml.cs文件中,首先添加以下命名空间:
```csharp
using System.Windows.Forms;
```
3. 在MainWindow.xaml.cs文件中,创建一个NotifyIcon对象,并在窗口加载事件中进行初始化,包括设置托盘图标和右键菜单等属性。
```csharp
private NotifyIcon notifyIcon;
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
notifyIcon = new NotifyIcon();
notifyIcon.Icon = new System.Drawing.Icon("Icon.ico");
notifyIcon.Visible = true;
notifyIcon.Text = "My WPF Application";
ContextMenu menu = new ContextMenu(); // 创建右键菜单
MenuItem showMenuItem = new MenuItem();
showMenuItem.Text = "显示";
showMenuItem.Click += new EventHandler(ShowMenuItem_Click);
menu.MenuItems.Add(showMenuItem);
MenuItem exitMenuItem = new MenuItem();
exitMenuItem.Text = "退出";
exitMenuItem.Click += new EventHandler(ExitMenuItem_Click);
menu.MenuItems.Add(exitMenuItem);
notifyIcon.ContextMenu = menu;
}
```
4. 创建点击事件处理方法来处理托盘图标的左键双击事件,以及右键菜单中的"显示"和"退出"事件。
```csharp
private void TrayIcon_DoubleClick(object sender, EventArgs e)
{
this.Show(); // 双击托盘图标时显示主窗口
this.WindowState = WindowState.Normal;
}
private void ShowMenuItem_Click(object sender, EventArgs e)
{
this.Show(); // 右键菜单中点击"显示"时显示主窗口
this.WindowState = WindowState.Normal;
}
private void ExitMenuItem_Click(object sender, EventArgs e)
{
this.Close(); // 右键菜单中点击"退出"时关闭应用程序
}
```
5. 最后,在MainWindow.xaml文件中的Window标签中添加Loaded事件调用MainWindow_Loaded方法。
```xml
<Window x:Class="Demo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="WPF最小化托盘Demo" Height="450" Width="800" Loaded="MainWindow_Loaded">
<!-- 主窗口内容 -->
</Window>
```
通过以上步骤,我们可以实现一个简单的WPF最小化托盘Demo,点击托盘图标可以显示主窗口,右键菜单中可以选择显示或退出应用程序。
阅读全文