Изменить свойства меню ленты после загрузки ленты - PullRequest
0 голосов
/ 12 ноября 2018

Я строю VSTO (сделанный с Дизайнером Ленты, не используя Лента XML).Можно ли изменить свойства (например, метку) вкладки с Ribbon1.cs?

Я даже не могу изменить заголовок ленты с помощью:

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

1 Ответ

0 голосов
/ 14 ноября 2018

Способ сделать это динамически - использовать обратный вызов.

В вашей ленте 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";
    }
}

Обратный вызов будет выполняться всякий раз, когда отображается вкладка, поэтому, вероятно, при запуске. Если вы действительно хотите изменить то, что показывает, вы должны сделать это недействительным:

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