🎉 Notion Files Management v1.5.0-Status
这是 Notion Files Management 的正式版更新,基于 v1.4.6-Beta,包含 4 项新功能、1 项性能优化和 4 项 Bug 修复。
✨ 新功能
📢 公告中心
- 新增「公告」页面,左侧导航栏一键直达(位于「主页」之后)。
- 从远端拉取公告索引与 Markdown 正文,卡片流式布局内联渲染,支持置顶、标签色块、日期排序。
- 本地缓存 + 已读管理:成功拉取后写入本地缓存,网络不可用时自动回退;进入公告页即标记全部已读。
- 主页顶部新增公告未读提醒横幅(液态玻璃风格),显示未读条数,点击「查看公告」一键跳转。
- 服务端热更新:只需在服务端推送新的
idx.json+.md文件,客户端无需发版即可展示新公告。
🖼️ 自动推送背景
- 背景材质新增「自动推送图片」选项,设为默认材质(替代原 Mica)。
- 启动时自动从服务端拉取预设背景配置(HTTPS→HTTP 降级),下载并缓存到本地。
- 切换预设:卡片式布局预览面板,带缩略图(图片)或 🎬 占位符(视频),选中项高亮。
- 不透明度调节:滑条控制遮罩层不透明度(越高壁纸越暗),默认 30%。
- 根据文件后缀自动识别图片(.png/.jpg/.jpeg/.bmp/.gif/.webp)或视频(.mp4)。
- 无网络时自动回退 Mica 材质。
🧹 清除一切缓存
- 工具箱新增「清除一切缓存」工具,一键递归清除
%AppData%/NotionFilesManagement/下所有数据。 - 包含配置文件、背景缓存、公告缓存、已读标记、日志等。
- 红色危险按钮 + 二次确认,清除后建议重启应用。
🚀 预设背景三层缓存
- 配置 JSON 磁盘缓存:优先读取本地缓存的
config.json,瞬间加载,后台静默刷新。 - 缩略图磁盘缓存:预设图片缓存到
background_cache/thumbs/,避免每次重新下载。 - 预设切换就地更新:选中预设时仅更新边框和文本样式,不再重建所有卡片。
- 离线或网络差时可使用上次缓存的配置和缩略图。
🐛 Bug 修复
🔄 设置页自动更新进度条跨页面切换后消失
- 根因:WPF 的
Page在导航切换时被卸载并销毁,切换回设置页时创建全新实例,旧实例上的下载进度更新已不可见。 - 修复:新增
AutoUpdateSession单例会话(与DownloadSession/UploadSession同模式),持久化下载状态;页面加载时从 Session 恢复进度条,通过 200ms 轮询定时器实时同步 UI。
📐 主页提醒横幅布局异常
- 根因:版本更新横幅与公告未读横幅各自使用硬编码
Margin定位,当其中一个不可见时另一个悬浮在页面中间。 - 修复:两个横幅统一包裹在
StackPanel中自动堆叠,Collapsed时不占空间,剩余横幅自动贴靠顶部。
🔗 公告页 Markdown 链接不可点击
- 根因:MdXaml 渲染的 Hyperlink 路由事件未正确冒泡至页面。
- 修复:在
NoticePage注册Hyperlink.RequestNavigateEvent处理器,捕获链接点击并通过Process.Start打开浏览器。
🏷️ 背景不透明度标签语义统一
- 根因:「自动推送」和「视频或图片」两处背景设置滑条均标注"透明度",但实际控制遮罩不透明度,语义混淆;且两个模式下同一滑条值效果完全相反。
- 修复:两处标签统一改为"不透明度";视频或图片模式滑条做
1 - stored反转;统一语义:不透明度越高 → 壁纸越暗。配置存储格式不变,向后兼容。
🔧 技术变更
新增文件
| 文件 | 说明 |
|---|---|
Services/AutoUpdateSession.cs | 自动更新会话单例,持久化下载进度与状态 |
Models/NoticeItem.cs | 公告数据模型(含 Markdown 正文、加载状态,支持 INotifyPropertyChanged) |
Models/NoticeIndex.cs | 公告索引 idx.json 反序列化模型 |
Services/NoticeService.cs | 公告网络请求 + 本地缓存 + 已读管理服务 |
Views/NoticePage.xaml | 公告中心页面 UI(卡片流式布局 + MdXaml Markdown 渲染) |
Views/NoticePage.xaml.cs | 公告页面逻辑(加载、刷新、排序、已读标记、链接处理) |
Utils/NoticeConverters.cs | 值转换器集合(Bool↔Visibility、Tag↔颜色映射) |
修改文件
| 文件 | 变更说明 |
|---|---|
AppConfig.cs | 新增 AutoPushBackgroundName、AutoPushBackgroundSrc、AutoPushTransparency 字段;默认材质改为 AutoPush |
Notion-Files-Management.csproj | 版本从 1.4.6-Beta 升级至 1.5.0-Status |
MainWindow.xaml | 导航栏新增「公告」菜单项(Megaphone24 图标) |
MainWindow.xaml.cs | 新增 ApplyAutoPushBackgroundAsync()、ApplyAutoPushFile()、GetBgCacheDir() 及相关数据模型 |
App.xaml.cs | 启动时 fire-and-forget 预加载公告索引 |
Views/DashboardPage.xaml | 新增公告未读横幅 + 横幅布局改为 StackPanel 自动堆叠 |
Views/DashboardPage.xaml.cs | 新增未读数检测 + 横幅动画 + 导航跳转 |
Views/SettingsPage.xaml | 新增 AutoPush 设置面板;两处"透明度"标签改为"不透明度";说明文字更新 |
Views/SettingsPage.xaml.cs | 集成 AutoUpdateSession;三层缓存机制(FetchBgConfigAsync() 重构、RefreshBgConfigFromNetworkAsync()、SaveBgConfigCache()、LoadThumbnailAsync() 重构、GenerateThumbCacheFileName()、UpdatePresetCardSelectionStyles());Image 模式滑条反转 |
Views/ToolsPage.xaml | 新增"清除一切缓存"卡片(含确认 InfoBar) |
Views/ToolsPage.xaml.cs | 新增 ClearAllCache_Click()、ConfirmClearAllCache_Click()、CancelClearAllCache_Click() |
NuGet 依赖变更
| 包名 | 操作 | 版本 | 用途 |
|---|---|---|---|
MdXaml | 新增 | 1.27.0 | Markdown → FlowDocument 渲染(公告正文) |
版本号
Version: 1.4.6-Beta → 1.5.0-StatusInformationalVersion: 1.4.6-Beta → 1.5.0-Status
📦 下载
内嵌 Python 3.11,无需单独安装 Python。
💻 系统要求
- Windows 10 (1809+) · x64
- 最低 2 GB RAM
🚀 快速开始
- 在 Notion 的 Notion Integrations 创建 Integration,复制 Token(
ntn_开头)。 - 在 Notion 页面 →
…→ Add connections → 选择你的 Integration。 - 打开应用 → 设置 → 粘贴 Token → 保存 → 开始使用。
⚠️ 已知问题
- 仅支持 Windows x64。
- 程序重启后任务不会持久化(仅内存保存)。
- 暂不支持断点续传。
- 数据源迁移基于标题匹配,同名页面可能导致映射不精确。
🐛 反馈
如果觉得有用,欢迎给项目点个 ⭐ Star! · 赞助支持 ❤️
发布于 2026年2月22日 · 版本:1.5.0-Status
🎉 Notion Files Management v1.5.0-Status
This is a stable release of Notion Files Management, building on v1.4.6-Beta with 4 new features and 4 bug fixes.
✨ New Features
📢 Notice Center
- New "Notices" page accessible from the sidebar navigation (below "Home").
- Fetches notice index and Markdown content from the remote server, rendered inline with a card-flow layout. Supports pinning, tag color badges, and date-based sorting.
- Local cache + read tracking: Successfully fetched data is cached locally; falls back to cache when offline. Entering the notice page marks all as read.
- New unread notice banner on the Dashboard (liquid glass style), showing unread count with a one-click "View Notices" navigation button.
- Server-side hot update: Simply push new
idx.json+.mdfiles on the server — no client release required to display new notices.
🖼️ Auto-Push Backgrounds
- New "Auto-Push Image" background material option, now the default material (replacing Mica).
- Automatically fetches preset background configurations from the server on startup (HTTPS→HTTP fallback), downloads and caches locally.
- Switch Presets: Card-layout preview panel with thumbnails (images) or 🎬 placeholders (videos), selected item highlighted.
- Opacity Control: Slider controls overlay opacity (higher = darker wallpaper), default 30%.
- Automatically detects image (.png/.jpg/.jpeg/.bmp/.gif/.webp) or video (.mp4) by file extension.
- Falls back to Mica material when offline.
🧹 Clear All Cache
- New "Clear All Cache" tool in the Toolbox, recursively clears all data under
%AppData%/NotionFilesManagement/. - Includes config files, background cache, notice cache, read markers, logs, etc.
- Red danger button with confirmation prompt; recommends restarting after clearing.
🚀 Three-Layer Preset Background Cache
- Config JSON disk cache: Prioritizes local cached
config.jsonfor instant loading, silently refreshes in background. - Thumbnail disk cache: Preset images cached to
background_cache/thumbs/, avoiding redundant downloads. - In-place preset switching: Selecting a preset updates border and text styles only, no card rebuilding.
- Cached config and thumbnails available when offline or on poor network.
🐛 Bug Fixes
🔄 Auto-Update Progress Bar Disappears After Page Switch
- Root cause: WPF
Pageinstances are destroyed on navigation. Switching back to Settings creates a new instance, losing the active download progress. - Fix: Added
AutoUpdateSessionsingleton (same pattern asDownloadSession/UploadSession) to persist download state. On page load, progress is restored from the session and synchronized via a 200ms polling timer.
📐 Dashboard Banner Layout Issue
- Root cause: Update banner and notice banner each used hardcoded
Marginpositioning. When one was hidden, the other floated in the middle of the page. - Fix: Both banners are now wrapped in a
StackPanelfor automatic stacking.Collapsedelements take no space; remaining banners snap to the top.
🔗 Notice Page Markdown Links Not Clickable
- Root cause: MdXaml-rendered Hyperlink routed events were not bubbling up to the page.
- Fix: Registered a
Hyperlink.RequestNavigateEventhandler onNoticePageto capture link clicks and open URLs viaProcess.Start.
🏷️ Unified Background Opacity Label Semantics
- Root cause: Both "Auto-Push" and "Video/Image" background sliders were labeled "Transparency" but actually controlled overlay opacity, causing confusion. The same slider value produced opposite visual effects across modes.
- Fix: Both labels changed to "Opacity"; Video/Image mode slider inverted (
1 - stored). Unified semantics: higher opacity → darker wallpaper. Config storage format unchanged, fully backward compatible.
🔧 Technical Changes
New Files
| File | Description |
|---|---|
Services/AutoUpdateSession.cs | Auto-update session singleton, persists download progress and state |
Models/NoticeItem.cs | Notice data model (with Markdown content, loading state, INotifyPropertyChanged) |
Models/NoticeIndex.cs | Notice index idx.json deserialization model |
Services/NoticeService.cs | Notice HTTP requests + local cache + read tracking service |
Views/NoticePage.xaml | Notice center page UI (card-flow layout + MdXaml Markdown rendering) |
Views/NoticePage.xaml.cs | Notice page logic (loading, refresh, sorting, read tracking, link handling) |
Utils/NoticeConverters.cs | Value converters (Bool↔Visibility, Tag↔Color mapping) |
Modified Files
| File | Changes |
|---|---|
AppConfig.cs | Added AutoPushBackgroundName, AutoPushBackgroundSrc, AutoPushTransparency fields; default material changed to AutoPush |
Notion-Files-Management.csproj | Version upgraded from 1.4.6-Beta to 1.5.0-Status |
MainWindow.xaml | Added "Notices" nav item (Megaphone24 icon) |
MainWindow.xaml.cs | Added ApplyAutoPushBackgroundAsync(), ApplyAutoPushFile(), GetBgCacheDir() and related data models |
App.xaml.cs | Fire-and-forget notice index preload on startup |
Views/DashboardPage.xaml | Added notice unread banner + refactored banner layout to StackPanel |
Views/DashboardPage.xaml.cs | Added unread count detection + banner animation + navigation |
Views/SettingsPage.xaml | Added AutoPush settings panel; both "Transparency" labels changed to "Opacity"; description text updated |
Views/SettingsPage.xaml.cs | Integrated AutoUpdateSession; three-layer caching (FetchBgConfigAsync() refactored, RefreshBgConfigFromNetworkAsync(), SaveBgConfigCache(), LoadThumbnailAsync() refactored, GenerateThumbCacheFileName(), UpdatePresetCardSelectionStyles()); Image mode slider inversion |
Views/ToolsPage.xaml | Added "Clear All Cache" card (with confirmation InfoBar) |
Views/ToolsPage.xaml.cs | Added ClearAllCache_Click(), ConfirmClearAllCache_Click(), CancelClearAllCache_Click() |
NuGet Dependency Changes
| Package | Action | Version | Purpose |
|---|---|---|---|
MdXaml | Added | 1.27.0 | Markdown → FlowDocument rendering (notice content) |
Version
Version: 1.4.6-Beta → 1.5.0-StatusInformationalVersion: 1.4.6-Beta → 1.5.0-Status
📦 Download
Built-in Python 3.11, no separate Python installation required.
💻 System Requirements
- Windows 10 (1809+) · x64
- Minimum 2 GB RAM
🚀 Quick Start
- Create an Integration in Notion via Notion Integrations and copy the Token (starts with
ntn_). - In your Notion page →
…→ Add connections → Select your Integration. - Open the application → Settings → Paste the Token → Save → Start using.
⚠️ Known Issues
- Only supports Windows x64.
- Tasks are not persistent after restarting the program (memory-only storage).
- Breakpoint resume is not supported yet.
- Data source migration uses title-based matching; pages with identical titles may cause imprecise mapping.
🐛 Feedback
Submit Issues · Join Discussions
If you find this project helpful, feel free to give it a ⭐ Star! · Sponsor ❤️
Released on February 22, 2026 · Version: 1.5.0-Status
