【问题标题】:VSTO Outlook: Detect when any Outlook backstage view overlaps the explorer or inspector windowVSTO Outlook:检测任何 Outlook 后台视图何时与资源管理器或检查器窗口重叠
【发布时间】:2022-11-02 00:08:11
【问题描述】:

好吧,每次我需要使用 VSTO 在 Outlook 加载项中执行操作时,我总是会遇到问题、限制、限制等......

话虽如此......现在我正在尝试检测资源管理器或检查器窗口何时不可见。

例如,我有一个自定义任务窗格,我通过相应的 VisibleChanged 事件捕获任何可见性更改。当其可见性从 true 变为 false 或反之亦然或自定义任务窗格因任何原因关闭时,将触发此事件。当自定义任务窗格不可见时,我会做一些事情。

我遇到的问题如下: 如果我在资源管理器或检查器窗口中并单击 Outlook“文件”选项卡/菜单,则当前视图会发生变化,并且资源管理器和检查器不是最顶部的(它们不可见),最糟糕的是,自定义任务窗格 VisibleChanged事件被触发......所以在这个用例中,当自定义任务窗格不可见时,我不想做这些事情。我怎样才能检测到这个特定的用例?我的意思是当资源管理器或检查器窗口未显示为最顶部时。

【问题讨论】:

    标签: outlook vsto outlook-addin office-addins ribbonx


    【解决方案1】:

    您需要使用后台 UI 自定义,您可以在其中指定用于处理后台打开和关闭操作的回调。例如,下面的后台 UI XML 标记声明了打开后台 UI 的回调:

    <?xml version="1.0" encoding="utf-8"?>
    <!-- customUI is the root tag of all Fluent UI customizations. -->
    <customUI xmlns="https://schemas.microsoft.com/office/2009/07/customui"
              onLoad="OnLoad">
      <!—The Backstage element defines the custom structure of the Backstage UI. -->
      <backstage onShow="OnShow">
    

    因此,通过调用 onShow 回调,您将知道任务窗格何时与 Office 应用程序中的后台 UI 重叠。请参阅Adding Custom Commands and Changing the Visibility of Controls in the Office 2010 Backstage View 了解更多信息。

    后台UI在Introduction to the Office 2010 Backstage View for Developers文章中有深入介绍。

    仅供参考 Outlook 对象模型提供了 Application.ActiveWindow 方法,该方法返回代表桌面上当前 Microsoft Outlook 窗口的对象,ExplorerInspector 对象。

    【讨论】:

    • 是的,这正是我想要的,我想检测后台视图何时与资源管理器或检查器窗口重叠。所以我在你的代码 sn-p 中看到有 onLoad 回调和后台的 onShow 事件,我想我需要的是 onShow,对吧?
    猜你喜欢
    • 2023-02-23
    • 2023-02-10
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    • 2023-01-07
    • 2017-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多