首页 > 解决方案 > 创建新邮件后,RibbonDropDownItems 不可见

问题描述

对于用户在“收件人”字段中键入的每个接收器,我的加载项将创建一个相应的RibbonDropDown项目,我将在RibbonGallery. 触发事件后,将执行以下代码:

private void updateGallery(string name, string address, string gender, double probability)
{
    Globals.Ribbons.Ribbon1.RibbonUI.Invalidate();

    Microsoft.Office.Tools.Ribbon.RibbonDropDownItem itemReceiver = Globals.Factory.GetRibbonFactory().CreateRibbonDropDownItem();
    itemReceiver.ScreenTip = address;
    itemReceiver.Tag = gender;
    itemReceiver.Label = name;
    itemReceiver.SuperTip = (probability * 100).ToString() + " % Probability";

    Globals.Ribbons.Ribbon1.gallery1.Items.Add(itemReceiver);
}

注意: gallery1RibbonGallery.

这是用户将看到的:

查看(第一封邮件)

正如您在第一张图片中看到的那样,用户界面按预期工作。当用户创建新邮件时,图库不再更新其项目。代码仍将执行,但新项目不会显示在 UI 中。

这是用户将看到的:

查看(之后的每封邮件)

我尝试使用Invalidate,但要么我做错了,要么/而且它似乎不起作用。加载项还会根据gallery1的内容生成称呼。在图 2中,您可以看到邮件正文创建了称呼,因此gallery1的内容是合法的,但根本没有显示。

这是 XML:

<?xml version="1.0" encoding="UTF-8"?>
<customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <ribbon>
        <tabs>
            <tab idMso="TabAddIns" label="Smart Mail">
                <group id="groupUnsub" label="Unsubscribe">
                    <button id="btnUnsub" imageMso="JunkEmailOptions" onAction="button1_Click" supertip="Use this function to unsubscribe." label="Cancel Mailinglist" size="large" />
                </group>
                <group id="group1" label="Genderize">
                    <gallery id="gallery1" onAction="gallery1_Click" label="Identified Genders" size="large" columns="2" rows="2" itemHeight="32" itemWidth="32">
                        <button id="btnIndividualSalutation" imageMso="SendCopyOptions" onAction="btnIndividualSalutation_Click" label="Insert Individual Salutation" />
                        <button id="btnGroupSalutation" imageMso="SendCopyOptions" onAction="btnGroupSalutation_Click" label="Insert Group Salutation" />
                    </gallery>
                </group>
                <group id="group2" label="User Preferences">
                    <checkBox id="chkAutoSaveToContacts" onAction="chkAutoSaveToContacts_Click" label="Autosave to Contacts" />
                    <checkBox id="chkAutoAddSalutation" onAction="chkAutoAddSalutation_Click" label="Autoadd Salutation" />
                    <checkBox id="chkGroupSalutation" onAction="chkGroupSalutation_Click" label="Group Salutation" />
                    <checkBox id="chkAutoComplete" onAction="chkAutoComplete_Click" label="Autocomplete Text" />
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>

标签: c#outlookvstooutlook-addinribbon

解决方案


推荐阅读