在这种情况下,如何从RibbonToggleButton
扩展/派生?
我有一个Microsoft Word VSTO加载项。我的目标是创建一个“自定义”类MyRibbonToggleButton
,它扩展或派生自Microsoft.Office.Tools.Ribbon.RibbonToggleButton
。我想扩展/派生,因为至少有一个自定义属性,我想扩展RibbonToggleButton
类。
我的方法是观察Microsoft.Office.Tools.Ribbon.RibbonToggleButton
是如何创建的,然后从我所看到的派生MyRibbonToggleButton
类。
1.我创建了一个新的Word VSTO项目
2.新增功能区
3.设计Ribbon,增加RibbonToggleButton
当我检查设计器时,我可以看到RibbonToggleButton
对象是通过调用功能区的Factory.CreateRibbonToggleButton()
来示例化的。
由于返回的对象类型是Microsoft.Office.Tools.Ribbon.RibbonToggleButton
,我创建了一个自定义类并尝试从RibbonToggleButton
派生。
这是当我意识到RibbonToggleButton
是一个接口。因此,我的自定义类有大约30个未定义的属性、方法、事件等。我不想写所有这些背后的代码。相反,我想利用Microsoft在基本RibbonToggleButton
类中提供的属性、方法和事件,并且我想添加至少一个自定义属性。
现在我有麻烦了,因为我很难理解一般的接口,更不用说如何从一个接口扩展/派生。我很困惑,因为我知道Factory.CreateRibbonToggleButton()
在运行时必须返回一个具体的RibbonToggleButton
对象。同样:我想利用Microsoft在基本RibbonToggleButton
类中提供的属性、方法和事件,并且我想添加至少一个自定义属性。
在这种情况下,如何从RibbonToggleButton
扩展/派生?
1条答案
按热度按时间yb3bgrhw1#
你不能这样做,我不知道为什么你甚至需要它。如果可以的话,我也会避免使用功能区设计器--只需从代码中返回功能区XML。
每个功能区控件都有一个id(在功能区XML中定义)。如果需要使自定义控件与功能区控件保持同步,请刷新功能区(通过调用IRibbonUI.Invalidate或IRibbonUI. InvalidateControl。这将导致功能区触发控件上的自定义回调(您需要在功能区XML中指定它们),例如getImage、getText等。然后,您可以根据需要返回更新的信息。