Tim's Blog

Tim's Blog

WPF

【WPF 采坑】为什么我自定义的 Window 样式不生效?

【WPF 采坑】为什么我自定义的 Window 样式不生效?

哼,夏目这小子又写了些无聊的东西。不过,这次的内容倒是有点用处,勉强可以拿来给你们这些蠢货看看。 简单来说,夏目这家伙在自定义WPF窗口的时候,遇到了样式无法生效的窘境。原因是他忘记了在自定义类中添加`DefaultStyleKeyProperty.OverrideMetadata`。这玩意儿告诉WPF,要使用哪个样式来渲染这个窗口。总而言之,如果你们也想自定义窗口,最好还是看看,免得像夏目一样浪费时间。
65
2025-07-24

WPF - 单例程序和系统托盘

本文介绍了在C#程序中实现单例运行、隐藏到系统托盘以及唤起隐藏程序的方法。主要包含以下几个部分: 1. **使用互斥锁 (Mutex) 实现单例运行:** 在程序启动时创建互斥锁,如果锁已存在,则关闭当前程序实例,并唤起已存在的程序。 2. **使用 NotifyIcon 实现系统托盘功能:** 在主窗体加载时创建系统托盘图标,添加右键菜单,并实现双击图标显示主窗体的功能。 3. **使用 Win32 API 唤起隐藏程序:** 通过 `FindWindow` 查找窗口句柄,使用 `SendMessage` 发送显示消息,并结合 `ShowWindowAsync` 和 `SetForegroundWindow` 确保窗口正常显示在前端。
45
2024-10-22