我们有一个backstage extension表示integrates with the 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}");
}

最佳答案

看来解决方法是not publicized well-按钮上有一个标志(isDefinitive),一旦单击按钮,该标志会自动关闭后台视图-而不是在操作完成时关闭。

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


From MSDN


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

关于c# - 以编程方式退出Backstage View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23120528/

10-11 07:54