Надстройка для Outlook: пользовательская лента не видна в главном окне приложения, хотя RibbonType включает Microsoft.Outlook.Explorer - PullRequest
0 голосов
/ 01 мая 2020

Я создал надстройку Outlook 2016, которая отлично отображается в инспекторе Windows для встреч, использующих конструктор лент. Согласно документации , я добавил RibbonType Microsoft.Outlook.Explorer.

Я бы ожидал, что он также будет отображаться на начальном экране Outlook: enter image description here

Кроме того, я не могу найти какой-либо подходящий RibbonType для дополнительной настройки, чтобы надстройка отображалась на начальном экране. Что я должен добавить? enter image description here

Где найти хорошую дополнительную документацию о том, как настроить ленты Outlook? Должен ли я перейти на XML Настройка? Есть ли документация о том, как перейти от дизайнера к XML?

Я также включил код дизайнера:

namespace OutlookAddIn4
{
    partial class MyAddIn : Microsoft.Office.Tools.Ribbon.RibbonBase
    {
        /// <summary>
        /// Erforderliche Designervariable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        public MyAddIn()
            : base(Globals.Factory.GetRibbonFactory())
        {
            InitializeComponent();
        }

        /// <summary> 
        /// Verwendete Ressourcen bereinigen.
        /// </summary>
        /// <param name="disposing">"true", wenn verwaltete Ressourcen gelöscht werden sollen, andernfalls "false".</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Vom Komponenten-Designer generierter Code

        /// <summary>
        /// Erforderliche Methode für Designerunterstützung -
        /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
        /// </summary>
        private void InitializeComponent()
        {
            this.tab1 = this.Factory.CreateRibbonTab();
            this.group1 = this.Factory.CreateRibbonGroup();
            this.btnAddMyAddIn = this.Factory.CreateRibbonButton();
            this.btnViewInMyAddIn = this.Factory.CreateRibbonButton();
            this.btnRemoveFromMyAddIn = this.Factory.CreateRibbonButton();
            this.btnSettings = this.Factory.CreateRibbonButton();
            this.tab1.SuspendLayout();
            this.group1.SuspendLayout();
            this.SuspendLayout();
            // 
            // tab1
            // 
            this.tab1.ControlId.ControlIdType = Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office;
            this.tab1.ControlId.OfficeId = "TabAppointment";
            this.tab1.Groups.Add(this.group1);
            this.tab1.Label = "TabAppointment";
            this.tab1.Name = "tab1";
            // 
            // group1
            // 
            this.group1.Items.Add(this.btnAddMyAddIn);
            this.group1.Items.Add(this.btnViewInMyAddIn);
            this.group1.Items.Add(this.btnRemoveFromMyAddIn);
            this.group1.Items.Add(this.btnSettings);
            this.group1.Label = "MyAddIn";
            this.group1.Name = "group1";
            this.group1.Position = this.Factory.RibbonPosition.AfterOfficeId("GroupActions");
            // 
            // btnAddMyAddIn
            // 
            this.btnAddMyAddIn.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
            this.btnAddMyAddIn.Image = global::OutlookAddIn4.Properties.Resources.do_48x48;
            this.btnAddMyAddIn.Label = "Add Minutes";
            this.btnAddMyAddIn.Name = "btnAddMyAddIn";
            this.btnAddMyAddIn.ShowImage = true;
            this.btnAddMyAddIn.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.BtnAddMyAddIn_Click);
            // 
            // btnViewInMyAddIn
            // 
            this.btnViewInMyAddIn.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
            this.btnViewInMyAddIn.Image = global::OutlookAddIn4.Properties.Resources.do_48x48;
            this.btnViewInMyAddIn.Label = "View Minutes";
            this.btnViewInMyAddIn.Name = "btnViewInMyAddIn";
            this.btnViewInMyAddIn.ShowImage = true;
            this.btnViewInMyAddIn.Visible = false;
            this.btnViewInMyAddIn.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.ViewInMyAddIn_Click);
            // 
            // btnRemoveFromMyAddIn
            // 
            this.btnRemoveFromMyAddIn.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
            this.btnRemoveFromMyAddIn.Image = global::OutlookAddIn4.Properties.Resources.do_48x48;
            this.btnRemoveFromMyAddIn.Label = "Remove Minutes";
            this.btnRemoveFromMyAddIn.Name = "btnRemoveFromMyAddIn";
            this.btnRemoveFromMyAddIn.ShowImage = true;
            this.btnRemoveFromMyAddIn.Visible = false;
            this.btnRemoveFromMyAddIn.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.RemoveFromMyAddIn_Click);
            // 
            // btnSettings
            // 
            this.btnSettings.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
            this.btnSettings.Image = global::OutlookAddIn4.Properties.Resources.do_48x48;
            this.btnSettings.Label = "Settings";
            this.btnSettings.Name = "btnSettings";
            this.btnSettings.ShowImage = true;
            this.btnSettings.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.Settings_Click);
            // 
            // MyAddIn
            // 
            this.Name = "MyAddIn";
            this.RibbonType = "Microsoft.Outlook.Appointment, Microsoft.Outlook.Explorer";
            this.StartFromScratch = true;
            this.Tabs.Add(this.tab1);
            this.Load += new Microsoft.Office.Tools.Ribbon.RibbonUIEventHandler(this.MyAddIn_Load);
            this.tab1.ResumeLayout(false);
            this.tab1.PerformLayout();
            this.group1.ResumeLayout(false);
            this.group1.PerformLayout();
            this.ResumeLayout(false);

        }

        #endregion

        internal Microsoft.Office.Tools.Ribbon.RibbonTab tab1;
        internal Microsoft.Office.Tools.Ribbon.RibbonGroup group1;
        internal Microsoft.Office.Tools.Ribbon.RibbonButton btnAddMyAddIn;
        internal Microsoft.Office.Tools.Ribbon.RibbonButton btnViewInMyAddIn;
        internal Microsoft.Office.Tools.Ribbon.RibbonButton btnRemoveFromMyAddIn;
        internal Microsoft.Office.Tools.Ribbon.RibbonButton btnSettings;
        internal SettingsForm settingsForm;
    }

    partial class ThisRibbonCollection
    {
        internal MyAddIn MyAddIn
        {
            get { return this.GetRibbon<MyAddIn>(); }
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 04 мая 2020

Элемент ленты (Visual Designer) не поддерживает все возможные типы настройки ленты. Для расширенной настройки ленты вы можете экспортировать ленту из конструктора в ленту XML и редактировать XML напрямую. В статье Как: экспортировать ленту из конструктора лент в ленту XML подробно описывается задача, поэтому вы можете продолжить с XML и всеми функциями, предоставляемыми пользовательским интерфейсом Fluent.

Пользовательский интерфейс Fluent (также известный как лента) подробно описан в следующих статьях:

0 голосов
/ 01 мая 2020

Я был отчасти глуп. RibbonType - это лишь грубый предварительный выбор областей, в которых ваш надстройка может быть видимой. Чтобы точно определить области, в которые вы хотите добавить свою ленту, вам также необходимо определить OfficeId вашей вкладки следующим образом: this.tab1.ControlId.OfficeId = "TabAppointment"; Из приведенного выше примера кода видно, что для него установлено значение TabAppointment.

для поиска других допустимых вкладок вы можете найти следующий список полезный

Из этого я заключаю: если вы Вы хотите показать свою пользовательскую ленту в нескольких windows (например, в главном окне, календаре и встрече), вы хотите, чтобы несколько лент были прикреплены к различным идентификаторам OfficeId.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...