将经典Ribbon菜单升级为新的Ribbon菜单
本帖最后由 Richard.Ma 于 2020-1-21 17:50 编辑将经典功能区迁移到新功能区的步骤步骤1.创建原始项目的副本
我们将使用使用经典C1Ribbon的基于写字板的应用程序。确保你制作了相同的保留副本。以防止升级时出现问题该项目的功能区如下图所示。https://global-cdn.grapecity.com/blogs/componentone/20191121-migration-classic-ribbon-to-new-ribbon/image3_edited.png
步骤2.更新项目
[*]新功能区是为.Net 4.5.2构建的。因此,项目必须具有.NET 4.5.2或更高版本的目标版本。
[*]从项目引用中删除C1.Win.C1Ribbon.4,然后改为对C1.Win.Ribbon.4.5.2程序集添加引用。同样,删除所有其他相关程序集并添加与dll的4.5.2版本相对应的程序集。
[*]在您的项目中打开licenses.licx文件。您将需要替换所有引用C1.Win.C1Ribbon.4的行,例如,如果您有以下两行:C1.Win.C1Ribbon.C1Ribbon, C1.Win.C1Ribbon.4C1.Win.C1Ribbon.C1StatusBar, C1.Win.C1Ribbon.4您应该将它们替换为:C1.Win.Ribbon.C1Ribbon, C1.Win.Ribbon.4.5.2C1.Win.C1Ribbon.C1StatusBar, C1.Win.Ribbon.4.5.2同样,对其他相关的licenses.licx条目(如果有)执行此操作。
[*]如果你现在编译项目,你会看到很多编译错误提示找不到C1.Win.C1Ribbon命名空间,等等。你现在应该更换C1.Win.C1Ribbon命名空间C1.Win.Ribbon在整个应用程序。
步骤3.处理API变更
如果现在构建应用程序,您将看到几个错误,指向具有过时API的代码行。这些错误是由于API更改而产生的,需要手动处理。
[*]RibbonEventHandler已被删除。C1Ribbon.Ribbon的类型甚至已更改为EventHandler.
要解决此问题,请从更改RibbonEvent事件,从:this.c1Ribbon1.RibbonEvent += new RibbnEventHandler(c1Ribbon1_RibbonEvent);
改为:this.c1Ribbon.RibbonEvent += c1Ribbon1_RibbonEvent;
[*]现在,AppMenuAppearance枚举只有两个成员:Default和Compact。C1BackstageView作为API中的单独组件存在。这需要配置到功能区并包含各种选项卡(来自BackstageViewTab类)。现有应用程序无法通过AppMenuAppearance枚举成员对其进行设置。必须从应用程序中删除与ApplicationMenu相关的代码,以添加C1BackStageView相关代码,并且相应地,一些现有代码也可能需要更改。请注意,C1BackStageView没有像BottomPanelItems这样的属性。在将主C1BackstageView实例定义为其所有者之后,创建一个将作为控件添加到BackstageViewTab的UserControl。
[*]由于已删除视觉样式,因此RibbonForm不具有VisualStyle或VisualStyleHolder属性或ResetVisualStyle方法。因此,必须删除相关的代码行。
[*]要将图像添加到功能区项目,现在使用IconSet属性。IconSet属性用于基于DPI设置和不同的视图添加与一个项目相对应的多个图像。为了轻松迁移Ribbon,用户可以直接使用SmallImage / LargeImage属性。在设计期间,用户可以在Visual Studio中打开表单设计器,以观察Ribbon将其旧图像从SmallImage / LargeImage自动转换为IconSet属性。在运行时,用户可以使用SmallImage / LargeImage,而无需修复老代码来添加图像。注意:“新功能区”具有一组更新的嵌入式图像。要使用这些图像,您可以使用智能设计器替换单个项目的图像。
https://global-cdn.grapecity.com/blogs/componentone/20191121-migration-classic-ribbon-to-new-ribbon/image4_edited.pnghttps://global-cdn.grapecity.com/blogs/componentone/20191121-migration-classic-ribbon-to-new-ribbon/image5_edited.png建议将嵌入预设中的旧图像替换为新图像,以便更好地呈现。此外,Ribbon会根据情况自动显示大或小的嵌入式图像。
[*]VerticalLayout属性已从RibbonGalleryItem类中删除。请改用GalleryItemTextImageRelation属性。
现在,新的Ribbon就可以用于你的应用程序了。https://global-cdn.grapecity.com/blogs/componentone/20191121-migration-classic-ribbon-to-new-ribbon/image6_edited.png
页:
[1]