以编程方式退出Backstage视图

时间:2014-04-16 21:31:24

标签: c# excel vsto office-2013

我们有backstage extension integrates with the TabSave idMso文件 - > SaveAs )。

我们遇到的问题是,当我从后台点击按钮时 - 我不知道如何关闭后台视图。

我提出的最佳解决方案并不是非常强大,所以我希望有人会有更好的方法来解决这个问题,因为关闭后台视图似乎相当直观。也许我错过了一些东西 - 但是一旦我的按钮开火,我就无法退出后台视图。

功能区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}");
}

2 个答案:

答案 0 :(得分:4)

看起来解决方案是not publicized well - 按钮上有一个标志( isDefinitive ),一旦点击按钮就会自动关闭后台视图 - 而不是当行动完成时

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

From MSDN

  

关闭Backstage视图并返回当前工作簿   通过设置控件的isDefinitive属性来实现   自定义UI XML。

答案 1 :(得分:0)

怎么样:

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

问候,Jörg