【问题标题】:Using CommandBar to customize ribbon in COM-Addin在 COM-Addin 中使用 CommandBar 自定义功能区
【发布时间】:2014-01-11 04:37:14
【问题描述】:

我正在尝试使用 CommandBars 将按钮添加到功能区,但我找不到任何示例或方法。

我无法使用 CustomUI XML,因为我需要更改按钮的可见性,而且 CustomUI XML 不支持。

我发现了一个名为“Ribbon”的 CommandBar 和一个名为“Ribbon”的 CommandBarControl,但我不知道如何使用它在“TabHome”上放置一个按钮。

有人知道我在这里缺少什么吗?或者可以给我举个例子吗?

谢谢!

【问题讨论】:

    标签: c# ms-office add-in commandbar


    【解决方案1】:

    据我所知,您不能使用 CommandBars 来控制功能区。而且这样做是没有意义的,因为 CommandBars 技术在功能区 ui 中已被贬低,并且基本上仅支持兼容性。

    不太明白您为什么不想使用功能区 xml 来自定义功能区?这是官方的方式。要控制按钮的可见性,您应该简单地将按钮的“getVisible”属性设置为您的事件处理程序(回调),并在该回调中返回 true/false 以显示/隐藏按钮...

    您不能动态显示/隐藏的是内置办公按钮,但您应该能够显示/隐藏您自己的按钮而不会出现任何问题。

    看起来和这个很相似:

    Is there a way to use VBA and XML to add a button to the Office 2010 Ribbon depending on a string in the file name?

    【讨论】:

    • 您好,谢谢您的回答!问题是,对于某些工作簿,我想在 getVisible() 中返回 true,而对于某些工作簿,我想返回 false,但由于某种原因,excel(例如)不会多次调用 getVisible(),而且我找不到一种通过调用“getVisible()”来强制 excel 重新提问的方法。
    • 您可以使用 RibbonUI.Invalidate(或 RibbonIU.InvalidateControl)强制它。您可以使用 OnLoad 回调获得对ribbonUI 的引用:msdn.microsoft.com/en-us/library/…, msdn.microsoft.com/en-us/library/office/ee390805.aspx
    • 谢谢!只是多了一点额外的细节,每次组变得不可见并再次变为可见时,都会再次请求控件的图像(如果定义了 getImage)。
    猜你喜欢
    • 1970-01-01
    • 2012-03-07
    • 2013-09-02
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-23
    相关资源
    最近更新 更多