如何用WPF实现托盘控件,构建长尾词示例?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2620个文字,预计阅读时间需要11分钟。
WPF 基础控件使用指南:- 托盘图标(NotifyIcon)- 自定义控件继承自 FrameworkElement- 创建托盘程序主要依赖 Win32API:注册窗口体
项目信息:- 开发环境:Visual Studio 2022- 开源协议:MIT开源许可协议
WPF 基础控件之托盘
框架使用大于等于.NET40。
Visual Studio 2022。
项目使用MIT开源许可协议。
新建NotifyIcon自定义控件继承自FrameworkElement。
创建托盘程序主要借助与Win32API:
- 注册窗体对象
RegisterClassEx。 - 注册消息获取对应消息标识
IdRegisterWindowMessage。 - 创建窗体(本质上托盘在创建时需要一个窗口句柄,完全可以将主窗体的句柄给进去,但是为了更好的管理消息以及托盘的生命周期,通常会创建一个独立不可见的窗口)
CreateWindowEx。
以下2点需要注意:
- 托盘控件的
ContextMenu菜单MenuItem在使用binding时无效,是因为DataContext没有带过去,需要重新赋值一次。
本文共计2620个文字,预计阅读时间需要11分钟。
WPF 基础控件使用指南:- 托盘图标(NotifyIcon)- 自定义控件继承自 FrameworkElement- 创建托盘程序主要依赖 Win32API:注册窗口体
项目信息:- 开发环境:Visual Studio 2022- 开源协议:MIT开源许可协议
WPF 基础控件之托盘
框架使用大于等于.NET40。
Visual Studio 2022。
项目使用MIT开源许可协议。
新建NotifyIcon自定义控件继承自FrameworkElement。
创建托盘程序主要借助与Win32API:
- 注册窗体对象
RegisterClassEx。 - 注册消息获取对应消息标识
IdRegisterWindowMessage。 - 创建窗体(本质上托盘在创建时需要一个窗口句柄,完全可以将主窗体的句柄给进去,但是为了更好的管理消息以及托盘的生命周期,通常会创建一个独立不可见的窗口)
CreateWindowEx。
以下2点需要注意:
- 托盘控件的
ContextMenu菜单MenuItem在使用binding时无效,是因为DataContext没有带过去,需要重新赋值一次。

