SuperAPI AI 工具集

reactor-windowing

前端与建站

查看项目

更新于 10-16 00:31

技能介绍

用途:该技能面向 Microsoft UI Reactor 的顶层窗口开发,适用于涉及窗口创建、位置与尺寸、外壳装饰、任务栏特性、显示器以及原生选择器的任务。

主要能力:通过 ReactorApp.OpenWindow(new WindowSpec{...}, () => new SettingsWindow()) 创建窗口,返回 ReactorWindow 句柄,可调用 Activate、Close、SetSize、SetPosition、SetAspectRatio、BeginDragMove、SavePlacement、Update。WindowSpec 为不可变启动意图,可配置 ResizeMode、AspectRatio、MinWidth、SizeToContent、StartPosition、IsMovableByBackground 等。支持拖动(UseWindowDragMove)、位置持久化(WithPersistence、SavePlacement)、Z 序与任务栏(ShowInTaskbar、ShowInSwitcher、Level、Style、CornerStyle)、标题栏(TitleBar、Tall、PreferredTheme、自定义内容与拖拽区域)、图标(FromPath、FromResource、FromBytes、FromRgba)、背景材质(Mica、DesktopAcrylic)、任务栏进度、显示器查询与文件/文件夹选择器。

使用方式:窗口创建与配置使用 WindowSpec 与 OpenWindow;运行时变更通过 UseWindow() 等钩子;持久化默认写入 ApplicationData.Current.LocalSettings(打包)或 %LOCALAPPDATA%/<ProcessName>/ 下的 JSON 文件,未打包应用可在首次 OpenWindow 前设置 ReactorApp.WindowPersistenceStore = new UnpackagedAppDataStore(publisher: "Contoso", product: "TimeTracker")。选择器钩子必须在所属窗口 UI 线程运行并使用其 HWND。

限制:AspectRatio 不能与 ResizeMode.NoResize 或 SizeToContent 组合;SizeToContent 忽略最大化窗口且可能延迟一帧;UseIsCovered() 仅为 Z 序提示;不同图标来源支持的界面不同;持久化切换存储不会迁移已有布局;共享 PersistenceId 的窗口会互相覆盖;渲染错误处理需注意去重与传播行为。