如何扩展或派生 Microsoft RibbonFactory 创建的 RibbonToggleButton?

问题描述 投票:0回答:1

在这种情况下如何从

RibbonToggleButton
扩展/派生?

我有一个 Microsoft Word VSTO 加载项。我的目标是创建一个从

MyRibbonToggleButton
扩展或派生的“自定义”类
Microsoft.Office.Tools.Ribbon.RibbonToggleButton
。我想扩展/派生,因为我想至少有一个自定义属性来扩展
RibbonToggleButton
类。

我的方法是观察

Microsoft.Office.Tools.Ribbon.RibbonToggleButton
是如何创建的,然后从我所看到的派生
MyRibbonToggleButton
类。

1。我创建了一个新的 Word VSTO 项目

2。添加了丝带

3.设计了功能区,添加了 RibbonToggleButton

当我检查设计器时,我可以看到通过调用功能区的

RibbonToggleButton
来实例化
Factory.CreateRibbonToggleButton()
对象。

由于返回的对象类型是

Microsoft.Office.Tools.Ribbon.RibbonToggleButton
,我创建了一个自定义类并尝试从
RibbonToggleButton
派生。

这是我意识到

RibbonToggleButton
是一个接口的时候。因此,我的自定义类有大约 30 个左右未定义的属性、方法、事件等。我不想编写所有这些背后的代码。相反,我想利用 Microsoft 基类
RibbonToggleButton
中提供的属性、方法和事件,并且我想添加至少一个自定义属性。

现在我遇到了麻烦,因为我很难理解一般的接口,更不用说如何扩展/派生接口了。我很困惑,因为我知道在运行时一定有一个由

RibbonToggleButton
返回的具体
Factory.CreateRibbonToggleButton()
对象。再说一遍:我想利用 Microsoft 基类
RibbonToggleButton
中提供的属性、方法和事件,并且我想添加至少一个自定义属性。

在这种情况下如何从

RibbonToggleButton
扩展/派生?

c# winforms vsto extends derived-class
1个回答
0
投票

你不能这样做,我不确定你为什么需要它。如果您可以帮助的话,我也会避免使用功能区设计器 - 只需从代码中返回功能区 XML。

每个功能区控件都有一个 ID(在功能区 XML 中定义)。如果您需要使自定义控件与功能区控件保持同步,请刷新功能区(通过调用 IRibbonUI.Invalidate 或 IRibbonUI.InvalidateControl)。这将导致功能区在您的控件上触发自定义回调(您需要在功能区 XML 中指定它们) ),比如getImage、getText等,然后就可以根据情况返回更新后的信息了。

© www.soinside.com 2019 - 2024. All rights reserved.