色带加载后更改色带菜单属性 [英] Change Ribbon-menu properties after ribbon-load

查看:141
本文介绍了色带加载后更改色带菜单属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我构建了一个VSTO(由Ribbon Designer创建,而不使用Ribbon XML).是否可以从Ribbon1.cs更改选项卡的属性(如标签)?

I build a VSTO (made with the Ribbon Designer, not using Ribbon XML). Is it possible to change the properties (like label) of the Tab from Ribbon1.cs ?

我什至无法使用:

    private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
    {
        myRibbon.Label = "something";
    }

推荐答案

动态执行此操作的方法是使用回调.

The way to do this dynamically is using a callback.

在功能区XML中:

<tab id="myTabID" getLabel="myCallback">
  ....
</tab>

在功能区代码中:

public string myCallback(IRibbonControl control)
{
    switch (control.Id)
    {
        case "myTabID":
            return "My Label";
        case "whatever else":
        default:
            return "n/a";
    }
}

无论何时显示选项卡,回调都将执行,因此很可能在启动时执行.当您实际上想要更改显示内容时,必须使其无效:

The callback will execute whenever the tab is displayed, so probably on startup. When you actually want to change what's showing, you have to invalidate it:

ribbon.Invalidate();
// or
ribbon.InvalidateControl(id);

这篇关于色带加载后更改色带菜单属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆