【问题标题】:How can a Custom Task Pane toggle visibility whilst keeping the UI responsive?自定义任务窗格如何在保持 UI 响应的同时切换可见性?
【发布时间】:2018-03-27 15:28:15
【问题描述】:

我正在尝试在 Excel 插件中添加自定义任务窗格,该插件的工作方式与数据透视表窗格类似。

The intention is that when a Table is selected the custom pane should appear and should disappear.为此,我创建了一个自定义任务窗格:

this._taskPane = Globals.AddIn.CustomTaskPanes.Add(
    new TableTaskPane(),
    "FooPane");
this._taskPane.DockPositionRestrict
    = MsoCTPDockPositionRestrict.msoCTPDockPositionRestrictNoHorizontal;

选择表格时,窗格可见,取消选择时,窗格隐藏:

ListObject table = AddTable(); // Creates the table and populates with data.

table.Selected += range => this._taskPane.Visible = true;
table.Deselected += range => this._taskPane.Visible = false;

这实现了显示和隐藏窗格的效果,但不幸的是在 UI 中产生了一些延迟,其中当任务窗格在可见性状态之间转换时,光标在单元格之间“弹跳”。

这似乎是因为 Visible 属性的设置器会阻塞,直到任务窗格完成转换。在 Excel 2013 中,它从窗口的一侧滑出,大约需要 500 毫秒。

我看不到任何改变这种行为的方法 - 我已经尝试在 STA 线程上安排属性设置,但它会导致相同的阻塞。我很乐意更改任务窗格,使其立即显示而无需转换(如数据透视表窗格),但我也看不到任何可以实现这一点的东西。

我做错了吗?有没有办法通过直接 COM 或其他一些微妙隐藏的行为来解决这个问题?

【问题讨论】:

  • 嘿,你解决问题了吗?如果是这样,您可以发布答案吗?非常感谢。
  • 不是您真正想要的,它是对所有 Office 2013 的全局更改,而且它需要重新启动,因此您暂时无法在插件中执行此操作,但您可以禁用动画与注册表更改一起: [HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Common\Graphics] "DisableAnimations"=dword:00000001
  • “我很乐意更改任务窗格,使其立即出现而无需转换(如数据透视表窗格),但我也看不到任何事情可以实现。” - 您可以通过更改注册表 (DisableWindowTransitionsOnAddinTaskPanes) 禁用自定义任务窗格的动画,从而消除 500 毫秒的延迟。详情请看我的answer

标签: excel vsto ms-office


【解决方案1】:

您应该能够通过窗格 API 将窗格的宽度设置为零,或者使用 Windows API SetWindowPos 失败。然后更改可见性。我不使用 VSTO,但知道可以使用原始 Office 窗格对象来完成。

【讨论】:

    【解决方案2】:

    您可以通过关闭此处找到的愚蠢的 Windows 动画功能来实现这一点(甚至更多的性能改进): 控制面板 -> 系统和安全 -> 系统 -> 高级设置 -> 性能设置 -> 视觉效果。

    在这种特殊情况下,我相信你需要关闭这个:

    • 为窗口内的控件和元素设置动画。

    但这些对于加快速度也很有用:

    • 将菜单淡入或滑动到视图中
    • 滑动打开组合框
    • 在最小化和最大化时为窗口设置动画。

    【讨论】:

    • 我认为说服我的所有客户降级他们的整个视觉体验只是为了让我的插件更好地工作,我认为我不会有太大的运气,但我很感激这可能是唯一实际的解决方案解决问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    相关资源
    最近更新 更多