Skip to content

fix(plugin): 新增文件插图接口并确保画布可见与布局初始化 - #731

Open
PANDAJSR wants to merge 2 commits into
InkCanvasForClass:net10from
PANDAJSR:fix/plugin-file-image-insertion
Open

PANDAJSR wants to merge 2 commits into
InkCanvasForClass:net10from
PANDAJSR:fix/plugin-file-image-insertion

Conversation

@PANDAJSR

Copy link
Copy Markdown
Contributor

插件从本地文件导入图片时,需要直接插入当前批注/白板,避免占用剪贴板或弹出文件对话框。本 PR 新增通用 ICanvasInkService.InsertImageFromFileAsync(string path),与具体插件及手机传图协议无关。

图片复用宿主依赖文件保存和压缩流程,在添加到画布前按有效图片尺寸完成居中缩放(最多画布宽高的 70%,不放大小图),再绑定交互并记录撤销。导入结束后显示画布、退出鼠标穿透并切到选择工具,避免只更新工具高亮却看不到图片,也避免隐藏画布未触发 Loaded 时遗留原始大尺寸图片。

服务支持 UI Dispatcher 转发;拒绝无效路径、不支持的格式及冻结页,异步导入后再次检查冻结状态,目标为完成导入时的当前画布。仅修改 SDK 接口、服务转发和宿主插图实现三个文件,没有引入网络或希沃依赖。

验证:基于最新 upstream/net10 完整 Debug 构建通过,0 错误;存在仓库原有 MessagePack NU1902、区域设置和未使用字段警告。git diff --check 通过。

草稿原因:尚未完成真实窗口中的鼠标穿透收图、白板插图、切页、冻结及撤销/重做完整 UI 复测,不能仅凭构建确认这些交互全部通过。此次新增路径不调整原有文件对话框或通用控件插入入口。

@PANDAJSR
PANDAJSR marked this pull request as ready for review October 23, 2026 13:43
@PANDAJSR

PANDAJSR commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor Author

懒得详细测了()
应该没啥问题,出问题再revert()

@PANDAJSR

Copy link
Copy Markdown
Contributor Author

补充提交 8631510:修复通用文件插图接口在进入套索选择后,工具栏长度变化却未重新定位的问题。InsertPluginImageFromFileAsync 改为调用 HideSubPanels("select", autoAlignCenter: true),复用宿主既有的布局更新后定位流程,保留选择模式、图片布局和撤销记录行为;未修改全局工具栏算法,也不含 EN/手机协议逻辑。验证:独立 worktree Release 构建通过,0 错误,存在原有依赖/区域设置/未使用字段警告;git diff --check 通过。尚待真实 UI 复测:从鼠标穿透状态收图、已处于批注状态连续收图、手动拖动位置、PPT、白板及竖向工具栏。不能仅凭构建保证这些交互完全无副作用。此修复依赖本 PR 新增的文件插图接口,故合并在同一独立分支,避免重复 PR。

@CJKmkp CJKmkp added 等待验证 Wait to verify if it is fixed 新特性 New feature or request labels Oct 24, 2026
@CJKmkp

CJKmkp commented Oct 24, 2026

Copy link
Copy Markdown
Member

需要测试,否则不予合并

@PANDAJSR

Copy link
Copy Markdown
Contributor Author

补充要求的回归验证(2026-10-25),针对本 PR 原始 head 863151073a6826bf6412e0449b2bd064b057ff92,独立 worktree,未混入其他待审 PR。

  • Release 构建通过,0 errors;运行时检查 40 项通过,0 失败。
  • 检查无效路径/格式/损坏图片拒绝、后台线程收图、鼠标模式切入选择、大图 70% 限制与居中/等比、小图不放大,以及连续收图。
  • 检查桌面与白板撤销/重做、白板新页/前后页图片隔离、冻结页拒绝,以及异步导入过程中冻结后拒绝插入。
  • 横向和竖向工具栏均检查收图布局后在屏内且居中、再次收图保留预设保存位置。保存位置检查直接设置 pointDesktop,尚未模拟真实鼠标拖动。

验证源码、复跑脚本、构建及逐项日志:完整证据(pr731-runtime.log / pr731-build.log)。环境为 Windows 10 build 19044、.NET SDK 10.0.301、1920×1200 / 100%。验证工具加载真实宿主 DLL、MainWindow/XAML 并调用生产方法,使用 Dispatcher 等待异步操作与布局;跳过完整 App / Window_Loaded 启动,配置隔离,生产代码未改。

仍待人工验证:真实鼠标穿透状态下收图、图片点击/拖动/缩放、实际拖动工具栏后收图、真实 PPT 放映收图,以及多屏/不同 DPI。本次不声称完整端到端回归通过。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

新特性 New feature or request 等待验证 Wait to verify if it is fixed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants