2016-11-03 2 views
1

Мне нужно добавить некоторые функции пользовательского интерфейса в Outlook 2010 через C#.Добавить кнопку в Outlook 2010 в C#

Outlook buttons

Я уже знаю, как добавить простую кнопку, как непрочитанное/чтение с помощью ленты XML. Теперь мне нужно добавить кнопку типа «Категоризация», в которой есть небольшое меню с несколькими опциями.

Когда пользователь нажимает на один из вариантов, я хочу открыть соответствующую форму для заполнения.

Два вопроса:

  1. Как добавить эту более продвинутую кнопку? Есть ли интернет-ресурс, который объясняет этот материал? (До сих пор я мог найти только прохождение простой кнопки, которая отлично работает, но мне нужно больше).

  2. Параметры, отображаемые при нажатии этой кнопки, могут быть разными в зависимости от некоторой внутренней логики (например, я могу отключить одну из них или вообще не показывать ее). Как это делается?

  3. Для форм, которые открыты, проще ли использовать WinForms или WPF, учитывая, что я не знаком ни с одной из библиотек, но знаю, как программировать вообще?

Спасибо!

ответ

2

Вы можете выполнить следующие действия:

  1. Создание надстройки Outlook в Project
  2. Добавить новый элементленты (XML) и назовите его Ribbon1
  3. Paste это содержимое в файл 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. В Solution Explorer, → Свойства → Open Resources.resx и добавить некоторые изображения, например:

    • Image1
    • IMAGE2
  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 вы можете увидеть вашу ленту:

enter image description here

Примечание

+0

Большое спасибо, Reza! Одна вещь, которую я до сих пор не понял, это то, что я должен щелкнуть стрелку, а не на самой кнопке, чтобы открыть меню. Если я хочу открыть меню в любом случае, что мне делать? –

+0

Добро пожаловать. Да, это кнопка разделения и открыть раскрывающийся список вы должны щелкнуть по тексту/стрелке. В панели инструментов есть разные кнопки и меню, выберите тот, который вам больше нравится :) –

+0

Я имел в виду, что эта кнопка состоит из двух частей: кнопки и стрелки, каждый из которых можно щелкнуть отдельно. Если я нажму на стрелку, я получу меню; если я нажму на кнопку, то ничего не произойдет, если я не укажу обратный вызов. Это отличается от кнопки «Категоризация», где все это (кнопка + стрелка) действует как единственная кнопка, открывающая меню.Поэтому мне было интересно, как добиться такого поведения. –

Смежные вопросы