【问题标题】:Outlook 2010 and Add-in-Express: how to make plugin collapsible when docked on one of sides of main window?Outlook 2010 和 Add-in-Express:如何使插件在停靠在主窗口的一侧时可折叠?
【发布时间】:2011-06-09 08:35:54
【问题描述】:

我正在使用 Add-in-Express 开发 Outlook 插件的原型,我真正想要的是当插件表单直接停靠在 Outlook 主窗口中时可以折叠/展开插件表单。我怀疑 Outlook VSTO API 不允许做这样的事情,可能 Add-In-Express 也不能这样做,但也许有人知道一些可能会有所帮助的技巧。

澄清我的情况的技术方面:

  • 我有一个 ADXOlForm 的 ADXOIFormsManager
  • ADXOlForm 的 ExplorerLayout 属性设置为“RightReadingPane”
  • ADXOlForm 的 ExplorerAllowedDropRegions 属性设置为“RightReadingPane;DockRight”

现在,当 Outlook 启动时,插件有一个折叠/展开按钮,并且可以正常工作。但是,如果我将插件拖到第二个允许的停靠区域,基本上是主窗口右侧的按钮就会消失。

那么,无论停靠区域如何,是否可以强制我的插件以某种方式折叠/扩展功能,或者这只是一种方式,我必须接受它?如果后者是真的,例如 Xobni 插件怎么可能做到这一点?他们是否在 WinApi 级别上操作 Outlook 的窗口并更改其大小以与 Xobni 一起使用,或者他们只是模拟该行为并只是更改插件大小以使其看起来以类似的方式最小化 待办事项栏是?

更新 我知道根据 Add-in-Express 团队在他们的论坛和文档中所说的,这是 VSTO API 的限制,但我想知道是否有人破解了它。

【问题讨论】:

    标签: add-in outlook-addin


    【解决方案1】:

    好的,通过 google 进行挖掘确保我想做的事情不能直接使用 Add-In-Express API 完成,所以我选择作弊并模拟所需的行为。

    那么,我做了什么:

    • 属性 IsDragDropAllowed 设置为 false
    • 属性 AlwaysShowHeader 设置为 false
    • 在我的表单顶部添加了带有按钮的面板,该按钮用作展开/折叠开关
    • 插件的最小宽度被 VSTO 限制为 74,因此这是插件处于“折叠”状态的宽度
    • 当插件折叠时,带有按钮的面板将其停靠到左侧并充当可点击栏,就像在 Outlook 待办事项栏中一样
    • 由于我禁用了拖放功能,我不得不将我自己的按钮添加到功能区视图选项卡中,以允许用户更改插件的显示位置,这对我的项目来说很好

    当然,在展开和折叠状态之间切换时,我必须解决控件的一些布局问题,但基本上我有我想要的:基于 Add-In-Express 的插件,具有展开/折叠功能,无论插件停靠在哪里。

    【讨论】:

      【解决方案2】:

      如果您是 Add-in Express 客户,请向他们的支持人员提问。他们确实是有关其产品和办公环境相关问题的所有方面的专家。 (我的电话总是有能力接听)。

      但请注意,Add-in Express 将自己理解为一种“快速开发产品”,它允许 Office 开发人员在特殊的时间范围内创建具有最佳实践的高级加载项.另一方面,如果你的开发团队有 5 名成员,拥有丰富的 C++ 经验,你可以使用 Windows Explorer 和 Office 制作高级的东西——你提到 Xnobi,我可以提到 DMS 环境中的插件,像 OpenText 电子文档。这不是使用 Add-in Express 开发的(我猜 :-))

      【讨论】:

      • 好吧,我是他们的客户,但我在他们的论坛上看到了几个类似的问题,并且总是回答“无法完成,这是自定义任务窗格限制”,这就是我在这里问的原因。你是对的,我的意图只是一点点 RAD :)
      【解决方案3】:

      您遇到的问题是由于两个窗格(即您的示例中提到的位置中的窗格)基于两种不同的技术而引起的。尽管这两个窗格具有相似的外观,但其中之一是 Add-in Express 窗格,它继承了 Outlook 窗口以为其自身腾出空间;另一个是 Office 提供的,自定义任务窗格是它的名字。也就是说,这个问题没有解决方案。

      【讨论】:

      • 好吧,古老的“自己动手”是一个答案,我知道是因为我做到了。也许它不漂亮,也许它不是根据人们的 Add-in Express 想法制作的,但它确实有效。而且我不介意一点黑客攻击,我只需要知道是否真的没有其他方法。
      猜你喜欢
      • 2015-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多