【问题标题】:Add button to Outlook 2010 in C#在 C# 中将按钮添加到 Outlook 2010
【发布时间】:2016-11-03 15:43:09
【问题描述】:

我需要通过 C# 向 Outlook 2010 添加一些 UI 功能。

我已经知道如何添加一个简单的按钮,例如使用 Ribbon XML 的未读/已读。 现在,我需要添加一个像“分类”这样的按钮,它有一个带有多个选项的小菜单。

当用户点击其中一个选项时,我想打开一个对应的表单来填写。

两个问题:

  1. 如何添加这个更高级的按钮?是否有任何互联网资源可以解释这些东西? (到目前为止,我只能找到一个简单按钮的演练,效果很好,但我需要更多)。

  2. 单击此按钮时显示的选项可能会有所不同,具体取决于某些内部逻辑(即,我可能想要禁用其中一个或根本不显示)。这是怎么做到的?

  3. 对于打开的表单,使用 WinForms 还是 WPF 更容易,因为我对这两个库都不熟悉,但一般都知道如何编程?

谢谢!

【问题讨论】:

    标签: c# wpf winforms outlook office-addins


    【解决方案1】:

    您可以按照以下步骤操作:

    1. 创建一个Outlook 插件项目
    2. 添加新项目功能区 (XML) 并将其命名为 Ribbon1
    3. 将此内容粘贴到 XML 文件中:

      <?xml version="1.0" encoding="UTF-8"?>
      <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
          <ribbon>
              <tabs>
                  <tab idMso="TabAddIns">
                      <group id="group1" label="group1">
                          <splitButton id="splitButton1" size="large">
                              <button id="splitButton1__btn" label="splitButton1"
                                      getImage="Image1" />
                              <menu id="splitButton1__mnu">
                                  <button id="button1" label="button1" getImage="Image2" />
                                  <button id="button2" label="button2" getImage="Image2" />
                              </menu>
                          </splitButton>
                      </group>
                  </tab>
              </tabs>
          </ribbon>
      </customUI>
      
    4. 在解决方案资源管理器→属性→打开Resources.resx并添加一些图像,例如:

      • 图像1
      • 图像2
    5. 打开Ribbon1.cs 并将这些属性添加到类中:

      public System.Drawing.Bitmap Image1(IRibbonControl control)
      {
          return Properties.Resources.Image1;
      }
      public System.Drawing.Bitmap Image2(IRibbonControl control)
      {
          return Properties.Resources.Image2;
      }
      
    6. 打开ThisAddin并将这个方法添加到类中:

      protected override Microsoft.Office.Core.IRibbonExtensibility 
          CreateRibbonExtensibilityObject()
      {
          return new Ribbon1();
      }
      

    当您运行应用程序时,ADD-INS 选项卡可以看到您的功能区:

    注意

    【讨论】:

    • 非常感谢,礼萨!我还没有弄清楚的一件事是我必须单击箭头而不是按钮本身才能打开菜单。如果我想在这两种情况下都打开菜单,我该怎么办?
    • 不客气。是的,这是拆分按钮,要打开下拉菜单,您应该单击文本/箭头。工具箱里有不同种类的按钮和菜单,选择你更喜欢的一个吧:)
    • 我的意思是这个按钮有两个部分:按钮和箭头,每个部分都可以单独点击。如果我点击箭头,我会得到菜单;如果我点击按钮,那么除非我指定回调,否则什么都不会发生。这与“分类”按钮不同,其中整个按钮(按钮 + 箭头)充当打开菜单的单个按钮。所以我想知道如何获得这种行为。
    • 我知道你的意思。所以不要使用SplitButton。只需使用Menu。例如&lt;menu id="menu1" label="menu1" size="large"&gt;&lt;button id="button1" label="button1" /&gt;&lt;button id="button2" label="button2" /&gt;&lt;/menu&gt;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2014-06-03
    • 1970-01-01
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多