#outlook #outlook-addin #outlook-2016
#outlook #outlook-надстройка #outlook-2016
Вопрос:
Я создал надстройки Outlook, и они работают должным образом. Недавно установленная надстройка отображается на вкладке «Главная» Outlook. Она отображается как новая группа.
Мне нужно, чтобы моя надстройка отображалась рядом с опцией «Новый элемент», присутствующей в Outlook.
Для лучшего понимания, пожалуйста, посмотрите на изображение. Мне нужно, чтобы моя надстройка была точно указана в позиции желтого цвета.
Фрагмент кода
private void InitializeComponent() {
this.tabCustomHome = this.Factory.CreateRibbonTab();
this.group1 = this.Factory.CreateRibbonGroup();
this.menuButton1 = this.Factory.CreateRibbonMenu();
this.btnLogin = this.Factory.CreateRibbonButton();
this.btnLogout = this.Factory.CreateRibbonButton();
this.tabCustomHome.SuspendLayout();
this.group1.SuspendLayout();
this.SuspendLayout();
//
// tabCustomHome
//
this.tabCustomHome.ControlId.ControlIdType = Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office;
this.tabCustomHome.ControlId.OfficeId = "TabMail";
this.tabCustomHome.Groups.Add(this.group1);
this.tabCustomHome.Label = "TabMail";
this.tabCustomHome.Name = "tabCustomHome";
//
// group1
//
this.group1.Items.Add(this.menuButton1);
this.group1.Label = "Sample";
this.group1.Name = "group1";
//
// menuButton1
//
this.menuButton1.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
this.menuButton1.Dynamic = true;
this.menuButton1.Image = global::SHOutlookLogin.Properties.Resources.Sales;
this.menuButton1.Label = " ";
this.menuButton1.Name = "menuButton1";
this.menuButton1.ShowImage = true;
//
// btnLogin
//
this.btnLogin.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
this.btnLogin.Label = "Login";
this.btnLogin.Name = "btnLogin";
this.btnLogin.ShowImage = true;
this.btnLogin.Click = BtnLogin_Click;
//
// btnLogout
//
this.btnLogout.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
this.btnLogout.Label = "Logout";
this.btnLogout.Name = "btnLogout";
this.btnLogout.ShowImage = true;
this.btnLogout.Click = BtnLogout_Click;
//
// OutlookLoginRibbon
//
this.Name = "OutlookLoginRibbon";
this.RibbonType = "Microsoft.Outlook.Explorer";
this.Tabs.Add(this.tabCustomHome);
this.Load = new Microsoft.Office.Tools.Ribbon.RibbonUIEventHandler(this.OutlookLoginRibbon_Load);
this.tabCustomHome.ResumeLayout(false);
this.tabCustomHome.PerformLayout();
this.group1.ResumeLayout(false);
this.group1.PerformLayout();
this.ResumeLayout(false);
}
#endregion
internal Microsoft.Office.Tools.Ribbon.RibbonTab tabCustomHome;
internal Microsoft.Office.Tools.Ribbon.RibbonGroup group1;
internal Microsoft.Office.Tools.Ribbon.RibbonButton btnLogin;
internal Microsoft.Office.Tools.Ribbon.RibbonButton btnLogout;
internal Microsoft.Office.Tools.Ribbon.RibbonMenu menuButton1;
Ответ №1:
Необходимо использовать следующую разметку:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="ribbonLoaded_Callback">
<ribbon startFromScratch="false">
<tabs>
<tab getVisible="getVisible_Callback" idMso="TabMail">
<group getLabel="getLabel_Callback" getScreentip="getScreenTip_Callback" getVisible="getVisible_Callback" id="RibbonGroup_3b56363af4b447adb1126bb6791405c7" insertAfterMso="GroupMailNew">
<button getDescription="getDescription_Callback" getEnabled="getEnabled_Callback" getKeytip="getKeytip_Callback" getLabel="getLabel_Callback" getScreentip="getScreenTip_Callback" getShowImage="getShowImage_Callback" getShowLabel="getShowLabel_Callback" getSize="getSize_Callback" getVisible="getVisible_Callback" id="RibbonButton_7f2ec50f5d65467fbcf3cadef7e8ab15" onAction="onActionCommon_Callback" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
В результате в Outlook должно получиться следующее изображение:
Вам может оказаться полезной статья Пошаговое руководство: создание пользовательской вкладки с помощью Ribbon XML.
Комментарии:
1. Спасибо за обновление. Мне нужно то же самое из кода C #. вы можете мне помочь?
2. Вам просто нужно определить
GetCustomUI
обратный вызов в коде. Остальные обратные вызовы зависят от вас.3. Я добавил пошаговое руководство, в котором приведены необходимые шаги для создания вкладки ленты с помощью примера кода на C #.
4. Я добавил свой текущий код. Если я не ошибаюсь, мне нужно добавить некоторый идентификатор, отображающий его рядом с новыми элементами. Было бы здорово, если бы вы помогли мне с тем, какие изменения я должен внести в свой код. Поскольку я новичок в надстройке Outlook, я не очень хорошо знаком с ней.
5. Вы можете найти требуемые
idMso
значения в разметке, представленной выше.