C# 添加到VSTO for Excel的功能区的类型为RibbonBase,而不是IribboneExtensibility
我正在构建一个VSTO应用程序(WinForms),并按照以下说明进行操作: 步骤如下所示:C# 添加到VSTO for Excel的功能区的类型为RibbonBase,而不是IribboneExtensibility,c#,vsto,C#,Vsto,我正在构建一个VSTO应用程序(WinForms),并按照以下说明进行操作: 步骤如下所示: protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject() { return new MyRibbon(); } 在“项目”菜单上,单击“添加新项” 在“添加新项目”对话框中,选择功能区(XML) 将新功能区的名称
protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
return new MyRibbon();
}
createRibboneExtensibilityObject()
代码时(如下所示):
我得到以下错误:
Cannot implicitly convert the type MyRibbon to Microsoft.Office.Core.IRibbonExtensibility. An explicit conversion exists (are you missing a cast)?
通过可视化研究生成的类的类型为RibbonBase
partial class CLIREMPRibbon : Microsoft.Office.Tools.Ribbon.RibbonBase {...}
下面的类型转换引发异常:
Unable to cast object of type MyRibbon to type Microsoft.Office.Core.IRibbonExtensibility.
如何将RibboneExtensibility接口实例的正确类型转换应用于RibboneBase?请参阅:
“您不必重写此方法,即可返回通过使用功能区(可视化设计器)项模板添加到项目中的功能区
默认情况下,此方法返回一个RibbonManager对象,该对象表示项目中的所有Ribbon(可视化设计器)项。有关详细信息,请参阅Ribbon Overview。“
我已经从XML切换到使用Visual Designer,这样我可以添加一个活动面板。在VSTO中,您可以使用Visual Designer创建一个基本的自定义Fluent UI,然后将其导出到一个功能区XML文件,该文件可在以后扩展。不幸的是,功能区设计器中并非所有功能都可用,因此有时您必须改用原始XML标记。在文章中阅读更多关于这方面的内容。因此,如果您对设计器很满意,则无需修改代码中的任何内容。您必须选择一种或另一种自定义Fluent UI的方式