【问题标题】:Assign Outlook Categories to a RibbonMenu with buttons将 Outlook 类别分配给带有按钮的 RibbonMenu
【发布时间】:2020-07-24 08:30:53
【问题描述】:

我目前正在创建 Outlook 加载项,需要将 Outlook 分类菜单包含到我的加载项中。 使用此 Foreach,我正在创建按钮并将其手动添加到“Kategorisieren”-RibbonMenu 中,并将它们命名为与类别名称相同。现在我正在尝试将类别的彩色图像复制到按钮 Image,该按钮通过为它们分配正确的 OfficeImageId 来工作。尽管如此,还是有一些类别的颜色没有被描述为 OfficeImageIds,而是像对象 f。 e.作为 OlCategoryColor.OlCategoryColorPeach 对象的桃色。问题是我不能通过将它们分配给 button.Image 或 OfficeImageId 来使用它们。如何在我的按钮旁边以正确的颜色显示这些小图标。

下一个任务是通过单击右键将类别分配给约会。

Categories categories = Globals.TerminAddIn.Application.Session.Categories;

foreach (Category category in categories)
                {
                    var button = this.Factory.CreateRibbonButton();
                    this.Kategorisieren.Items.Add(button);
                    button.Label = category.Name;
                }

 this.Kategorisieren.ControlSize = RibbonControlSize.RibbonControlSizeLarge;
 this.Kategorisieren.OfficeImageId = "CategorizeMenu";
 this.Kategorisieren.ShowImage = true;

【问题讨论】:

    标签: categories outlook-addin ribbon-control appointment outlook-calendar


    【解决方案1】:

    我建议使用带有回调的功能区 XML,您可以在其中定义按钮的图像和标签。您可以随时更新按钮列表或使用颜色更改类别。在Walkthrough: Create a custom tab by using Ribbon XML 文章中阅读有关此方法的更多信息。

    当您使用回调过程自定义功能区 UI 时,对于插件实现的每个回调,响应都会被缓存。例如,如果加载项编写器为按钮实现getImage 回调过程,则调用该函数一次,加载图像,然后如果需要更新图像,则使用缓存的图像而不是调用该过程.此过程保持原位,直到加载项使用 Invalidate 方法发出缓存值无效的信号,此时,再次调用回调过程并缓存返回响应。

    Fluent UI(又名 Ribbon UI)在以下系列文章中进行了深入描述:

    【讨论】:

    • 好的,唯一的问题是,我从视觉设计师开始,用 XML 重写所有内容需要做很多工作。有没有办法用 c# 中的视觉设计器功能区来做到这一点?另外,如果我在 xml 中为菜单分配一个按钮,如果 getImage 正在使用字符串,我如何获取分类颜色的图像?
    • 功能区设计器允许将所有内容导出为 XML。所以,你可以从你离开的地方继续。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 2014-03-01
    • 2016-02-19
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 2015-08-05
    相关资源
    最近更新 更多