WPF 实现最小化托盘
时间: 2025-01-01 10:02:20 浏览: 10
WPF (Windows Presentation Foundation) 中实现最小化到托盘的功能通常涉及到创建一个窗口并设置其`WindowState`属性为`Minimized`,同时在窗体关闭时将它转换成一个`TrayIcon`,也就是系统托盘图标。以下是基本步骤:
1. 创建一个新的WPF项目,并添加`System.Windows.Forms`命名空间,因为`TrayIcon`控件属于.NET Framework的这一部分。
2. 在XAML中,定义一个窗口(`Window`),并设置标题、大小等属性。当需要显示或隐藏窗口时,可以设置窗口的状态:
```xml
<Window x:Class="YourNamespace.MainWindow"
Title="YourApp"
WindowStartupLocation=".CenterScreen">
<!--...其他内容-->
<Window.TrayIcon>
<Setter Property="Icon" Value="path_to_your_icon.ico"/>
</Window.TrayIcon>
</Window>
```
3. 在窗口类(`MainWindow.xaml.cs`)中,覆盖`OnClosed`事件处理程序,以将窗口转换为托盘图标:
```csharp
public partial class MainWindow : Window
{
private readonly TrayIcon trayIcon;
public MainWindow()
{
InitializeComponent();
trayIcon = new TrayIcon(Icon);
}
protected override void OnClosed(EventArgs e)
{
base.OnClosed(e);
// 将窗口转换为TrayIcon
this.Hide();
trayIcon.Visible = true;
trayIcon.ShowBalloonTip(5000, "Your App", ToolTipIcon.Info, "");
}
//...其他窗口操作
}
```
4. 当从托盘图标点击或者接收到用户消息时,可以通过`TrayIcon`实例来显示或隐藏窗口:
```csharp
private void trayIcon_MouseDoubleClick(object sender, MouseEventArgs e)
{
Show();
}
private void trayIcon_BalloonTipClicked(object sender, EventArgs e)
{
Show();
}
```
阅读全文