Программный выход из представления Backstage

У нас есть расширение за кулисами, которое интегрируется с TabSave idMso (Файл-- >Сохранить как).

Проблема, с которой мы сталкиваемся, заключается в том, что когда я нажимаю кнопку за кулисами, я не знаю, как закрыть представление за кулисами.

Лучшее решение, которое я придумал, не очень надежное, поэтому я надеялся, что у кого-то будет лучший подход для решения этой проблемы, поскольку кажется довольно интуитивным закрытие вида за кулисами. Может быть, я что-то упускаю, но я не могу закрыть вид за кулисами после срабатывания моей кнопки.

Лента XML

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
    <backstage>
        <tab idMso="TabSave">
            <firstColumn>
                <taskFormGroup idMso="SaveGroup">
                    <category idMso="Save">
                        <task id="customTask" label="Custom Task" imageMso="HappyFace">
                            <group id="customGroup1" label="Custom Group">
                                <topItems>
                                    <labelControl id="lblInfo" label="Click to trigger custom action."/>
                                    <button id="btnCustomAction" style="large" label="Custom Action" imageMso="HappyFace" onAction="btnAction"/>
                                </topItems>
                            </group>
                        </task>
                    </category>
                </taskFormGroup>
            </firstColumn>
        </tab>
    </backstage>
</customUI>

Обратные вызовы ленты

public void btnAction(Office.IRibbonControl control)
{
   Excel.Window window = control.Context;
   MessageBox.Show("custom action triggered");
   window.Application.SendKeys("{ESCAPE}");
}

person SliverNinja - MSFT    schedule 16.04.2014    source источник


Ответы (2)


Похоже, решение плохо освещается – на кнопке есть флажок (isDefinitive), который автоматически закрывает представление за кулисами после нажатия кнопки, а не после завершения действия.

<button id="btnCustomAction" 
        style="large" 
        label="Custom Action" 
        imageMso="HappyFace" 
        isDefinitive="true"
        onAction="btnAction"/>

Из MSDN:

Закрытие представления Backstage и возврат к текущей книге происходит путем установки атрибута isDefinitive элемента управления в пользовательском XML пользовательского интерфейса.

person SliverNinja - MSFT    schedule 16.04.2014

Что о:

Microsoft.Office.Core.IRibbonUI.ActivateTab("SomeControlIdOfARibbonTab")

С уважением, Йорг

person jreichert    schedule 12.06.2014