请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

Richard.Ma 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-1-21 17:48  /   查看:2597  /  回复:0
本帖最后由 Richard.Ma 于 2020-1-21 17:50 编辑

将经典功能区迁移到新功能区的步骤
步骤1.创建原始项目的副本

       我们将使用使用经典C1Ribbon的基于写字板的应用程序。确保你制作了相同的保留副本。以防止升级时出现问题
该项目的功能区如下图所示。


步骤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事件,从:
  1. this.c1Ribbon1.RibbonEvent += new RibbnEventHandler(c1Ribbon1_RibbonEvent);
复制代码

改为:
  1. 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,而无需修复老代码来添加图像。
    注意:“新功能区”具有一组更新的嵌入式图像。要使用这些图像,您可以使用智能设计器替换单个项目的图像。

建议将嵌入预设中的旧图像替换为新图像,以便更好地呈现。此外,Ribbon会根据情况自动显示大或小的嵌入式图像。

  • VerticalLayout属性已从RibbonGalleryItem类中删除。请改用GalleryItemTextImageRelation属性。

现在,新的Ribbon就可以用于你的应用程序了。



0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部