我构建了一个VSTO(由Ribbon Designer创建,而不使用Ribbon XML)。是否可以从Ribbon1.cs
更改Tab的属性(如标签)?
我什至无法使用:
更改功能区标题。 private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
{
myRibbon.Label = "something";
}
答案 0 :(得分:0)
动态执行此操作的方法是使用回调。
在功能区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);