使用 Winform开发插件或软件时,创建Ribbon界面是比较难的,大部分第三方Ribbon控件不是针对WPF开发的 就是不能免费授权,以下的AERibbonControl库 是自定义开发的 可以免费使用 可以满足大部分的需要,后续将持续扩展 添加更多灵活的按钮类型 和必要的快速访问栏的创建

创建选项卡等方式和revit类似:

UIApplication uiapp = new UIApplication(this.aeRibbonControl1);

uiapp.CreateTab("建筑");

uiapp.CreateTab("附加模块");

RibbonPanel panel = uiapp.CreateRibbonPanel("建筑", "项目特征");

PushButton pb = new PushButton("暖通设计", Properties.Resources.apply, true, "");

pb.Click += new Ribbon.RibbonHandler(() =>

{

MessageBox.Show("1234567890暖通设计" + aeRibbonControl1.tabList[aeRibbonControl1.CurrentTab].name);

});

PushButton pb2 = new PushButton("建造楼板及天花板", Properties.Resources.white, true, "1234");

pb2.Click += new Ribbon.RibbonHandler(() =>

{

MessageBox.Show("1234567890建造楼板及天花板" + aeRibbonControl1.tabList[aeRibbonControl1.CurrentTab].name);

});

PushButton pb3 = new PushButton("参数设计", Properties.Resources.white, false, "1234");

pb3.Click += new Ribbon.RibbonHandler(() =>

{

MessageBox.Show("1234567890参数设计" + aeRibbonControl1.tabList[aeRibbonControl1.CurrentTab].name);

});

PushButton pb4 = new PushButton("设计", Properties.Resources.white, false, "5678");

pb4.Click += new Ribbon.RibbonHandler(() =>

{

MessageBox.Show("1234567890设计" + aeRibbonControl1.tabList[aeRibbonControl1.CurrentTab].name);

});

PullDownStack ps = new PullDownStack("用户界面", Properties.Resources.green, true, "5678");

PullDownStack ps2 = new PullDownStack("本地\n数据", Properties.Resources.green, false, "5678");

PullDownButton pd = new PullDownButton("分离中心文件", Properties.Resources._20, false, null);

pd.Click += new Ribbon.RibbonHandler(() =>

{

MessageBox.Show("分离中心文件");

});

PullDownButton pd2 = new PullDownButton("按工作集导出NWC文件", Properties.Resources.orange, false, null);

pd2.Click += new Ribbon.RibbonHandler(() =>

{

MessageBox.Show("按工作集导出NWC文件");

});

PullDownButton pd3 = new PullDownButton("按中心文件导出IFC文件", Properties.Resources.orange, false, null);

pd3.Click += new Ribbon.RibbonHandler(() =>

{

MessageBox.Show("按中心文件导出IFC文件");

});

PullDownButton pd4 = new PullDownButton("模型显隐", Properties.Resources.orange, false, null);

pd4.Click += new Ribbon.RibbonHandler(() =>

{

MessageBox.Show("模型显隐");

});

PullDownButton pd5 = new PullDownButton("模型显隐", Properties.Resources.blue, false, null);

pd5.Click += new Ribbon.RibbonHandler(() =>

{

MessageBox.Show("模型显隐");

pd5.IsEnabled = false;

});

PullDownButton pd6 = new PullDownButton("局部三维", Properties.Resources.blue, false, null);

pd6.Click += new Ribbon.RibbonHandler(() =>

{

MessageBox.Show("局部三维");

});

PullDownButton pd7 = new PullDownButton("构件定位", Properties.Resources.blue, false, null);

pd7.Click += new Ribbon.RibbonHandler(() =>

{

MessageBox.Show("构件定位");

});

PullDownButton pd8 = new PullDownButton("轴网创建", Properties.Resources.blue, false, null);

pd8.Click += new Ribbon.RibbonHandler(() =>

{

MessageBox.Show("轴网创建");

});

ps.AddItem(pd);

ps.AddItem(pd2);

ps.AddItem(pd3);

ps.AddItem(pd4);

ps2.AddItem(pd5);

ps2.AddItem(pd6);

ps2.AddItem(pd7);

ps2.AddItem(pd8);

panel.AddItem(pb);

panel.AddItem(pb2);

panel.AddItem(pb4);

panel.AddItem(pb3);

RibbonPanel panel2 = uiapp.CreateRibbonPanel("建筑", "参数关联");

panel2.AddItem(pb);

panel2.AddItem(pb2);

panel2.AddItem(pb3);

RibbonPanel panel3 = uiapp.CreateRibbonPanel("建筑", "选择测试");

panel3.AddItem(pb);

panel3.AddItem(pb2);

panel3.AddItem(ps);

panel3.AddItem(pb3);

panel3.AddItem(ps2);

RibbonPanel panel6 = uiapp.CreateRibbonPanel("建筑", "项目测试");

panel6.AddItem(pb2);

panel6.AddItem(pb);

panel6.AddItem(pb3);

panel6.AddItem(ps);

panel6.AddItem(pb4);

panel6.AddItem(pd5);

panel6.AddItem(pb3);

panel6.AddItem(ps2);

RibbonPanel panel4 = uiapp.CreateRibbonPanel("附加模块", "项目描述");

RibbonPanel panel5 = uiapp.CreateRibbonPanel("附加模块", "描述参数");

panel4.AddItem(pb);

panel4.AddItem(pb2);

panel4.AddItem(pb3);

panel5.AddItem(pb);

panel5.AddItem(pb2);

panel5.AddItem(pb3);

//创建应用菜单

ApplicationMenu menu = uiapp.CreateApplicationMenu("你是我的风景");

ApplicationMenuItem item_1 = new ApplicationMenuItem("新建规则", Properties.Resources.white, false, "思念是一种病,得治!");

ApplicationMenuItem item_2 = new ApplicationMenuItem("打开规则", Properties.Resources.white, false, "如果云知道,许茹芸");

ApplicationMenuItem item_3 = new ApplicationMenuItem("导出规则", Properties.Resources.white, false, "思念是一种病,得治!");

ApplicationMenuItem item_4 = new ApplicationMenuItem("导入规则", Properties.Resources.white, true, "中华上下五千年,厉害");

item_1.Click += new Ribbon.RibbonHandler(() =>

{

MessageBox.Show("新建规则");

});

MenuButton btn0 = new MenuButton("如果云知道", Properties.Resources.blue, false, null);

MenuButton btn1 = new MenuButton("台北在下雨", Properties.Resources.blue, false, null);

MenuButton btn2 = new MenuButton("故乡彩云映落日", Properties.Resources.blue, false, null);

MenuButton btn3 = new MenuButton("他乡秋风寄相思", Properties.Resources.blue, false, null);

MenuButton btn00 = new MenuButton("兵者,国之大事", Properties.Resources.blue, false, null);

MenuButton btn11 = new MenuButton("死生之地,存亡之道", Properties.Resources.blue, false, null);

MenuButton btn22 = new MenuButton("孔子曰:人之初,性本善", Properties.Resources.blue, false, null);

MenuButton btn33 = new MenuButton("孟子曰:孔子说得对", Properties.Resources.blue, false, null);

MenuButton btn44 = new MenuButton("老子曰:道可道,非常道", Properties.Resources.blue, false, null);

btn0.Click += new Ribbon.RibbonHandler(() =>

{

MessageBox.Show(btn0.Text);

});

btn3.Click += new Ribbon.RibbonHandler(() =>

{

MessageBox.Show(btn3.Text);

});

item_4.AddItem(btn0);

item_4.AddItem(btn1);

item_4.AddItem(btn2);

item_4.AddItem(btn3);

item_4.AddItem(btn00);

item_4.AddItem(btn11);

item_4.AddItem(btn22);

item_4.AddItem(btn33);

item_4.AddItem(btn44);

item_2.AddItem(btn0);

item_2.AddItem(btn1);

item_2.AddItem(btn2);

item_2.AddItem(btn3);

ApplicationMenuItem item_5 = new ApplicationMenuItem("没有规则", Properties.Resources.white, false, "思念是一种病,得治!");

ApplicationMenuItem item_6 = new ApplicationMenuItem("已有规则", Properties.Resources.white, false, "思念是一种病,得治!");

ApplicationMenuItem item_7 = new ApplicationMenuItem("放弃规则", Properties.Resources.white, false, "思念是一种病,得治!");

ApplicationMenuItem item_8 = new ApplicationMenuItem("重启规则", Properties.Resources.white, false, "思念是一种病,得治!");

item_5.Click += new Ribbon.RibbonHandler(() =>

{

MessageBox.Show("没有规则");

});

menu.AddMenuItems(item_1);

menu.AddMenuItems(item_2);

menu.AddMenuItems(item_3);

menu.AddMenuItems(item_4);

menu.AddMenuItems(item_5);

menu.AddMenuItems(item_6);

menu.AddMenuItems(item_7);

menu.AddMenuItems(item_8);

MenuText text_1 = new MenuText("一路过很多城", null);

MenuText text_2 = new MenuText("飘忽不定这也是一种麻痹", null);

MenuText text_3 = new MenuText("全部是你微笑的表情", null);

MenuText text_4 = new MenuText("一整片的森林", null);

MenuText text_5 = new MenuText("你在树荫里", null);

MenuText text_6 = new MenuText("复杂的生命因为有你", null);

MenuText text_7 = new MenuText("你是我的风景", null);

MenuText text_8 = new MenuText("云高风清不走下去", null);

MenuText text_9 = new MenuText("爱让悬崖变平地", null);

MenuText text_10 = new MenuText("看到了你莽莽撞撞靠近", null);

MenuText text_11 = new MenuText("细节都牵引我放下行李", null);

text_11.Click += new MenuText.RibbonHandler(() =>

{

MessageBox.Show(text_11.Text);

});

text_4.Click += new MenuText.RibbonHandler(() =>

{

MessageBox.Show(text_4.Text);

});

menu.AddTextItems(text_1);

menu.AddTextItems(text_2);

menu.AddTextItems(text_3);

menu.AddTextItems(text_4);

menu.AddTextItems(text_5);

menu.AddTextItems(text_6);

menu.AddTextItems(text_7);

menu.AddTextItems(text_8);

menu.AddTextItems(text_9);

menu.AddTextItems(text_10);

menu.AddTextItems(text_11);

MenuText btnOne = new MenuText("退出", null);

btnOne.Click += new MenuText.RibbonHandler(() =>

{

MessageBox.Show("退出此程序!");

});

MenuText btnTwo = new MenuText("设置", null);

btnTwo.Click += new MenuText.RibbonHandler(() =>

{

MessageBox.Show("选项设置");

});

menu.bottomBigBtn = btnOne;

menu.bottomSmallBtn = btnTwo;

this.aeRibbonControl1.menu = menu;

aeRibbonControl1.UpdateAndRefresh();

测试案例代码 请到本博客的CSDN资源里下载

基于WinForm开发的Ribbon界面案例相关推荐

  1. C#之CAD二次开发(14) Ribbon界面初探

    # 0. 引言 从CAD2009版本以后就开始使用上了Ribbon界面,更早的版本使用的界面相对较为简单,对比一下就知道啥是Ribbon界面了 这是CAD2006界面,经典的菜单工具栏,略low 这是 ...

  2. CAD二次开发——通过Ribbon界面来运行程序

    public class Class1{/// <summary>/// 创建面板/// </summary>[CommandMethod("RibbionDemo& ...

  3. 基于ATXMEGA128A1U-EK开发板的应用案例002: 基于SD卡热电偶温度采集应用

    By Mcuzone 实现功能:7705差分输入端外接热电偶可测得测量端温度,再与LM75所测得的冷端温度相加,就得到了热电偶端的真实温度.在1.8寸屏上会实时显示当前温度.DS3231的实时时间.当 ...

  4. HTCviveVR基于unity开发搭建初始界面

    @作者: 风不停息丶 文章目录 手动配置VR初始环境 使用SteamVR插件提供的预制件搭建初始环境 结尾总结 手动配置VR初始环境 1.先导入steamVR插件,基于steamVR插件搭建的环境,在 ...

  5. 基于Winform开发S7.net协议 与Smart-200PLC通讯

    1:软件编写都有架构 分为UI层 -> CoreLogicManager(逻辑管理层)Modes(实体层) 具体使用根据大家喜好 我的函数方法如下: 步骤一:在C#工具栏 Nuget包管理器内 ...

  6. 基于uniapp开发的聊天界面

    效果图: 1.2. 3. 代码截图 命名不标准自行修改 标签代码: js代码: css样式代码: 上代码: 自己新建一个文件夹 名字随便起 代码整进去直接预览即可 <template>&l ...

  7. java webtable_java winform开发:JTable详解

    列表在任何一门开发语言中都占有非常重要的地位,在.Net中有GridView,在extjs中有GridPanel...,而在java Swing中,它的名字叫JTable.这两天在研究JTable的使 ...

  8. Winform开发的界面处理优化

    在Winform开发中,客户体验是个很好的参考性指标,如果一个功能使用的时候感觉很流畅,说明我们的程序执行效率还不错,但是随着数据的真多,原先可能流程的地方可能会变得比较卡,这时候就需要追本索源,找到 ...

  9. Winform开发框架之Office Ribbon界面

    Winform开发框架之Office Ribbon界面 在前面几篇文章介绍我的Winform框架随笔文章,包括有<Winform开发框架之字典数据管理>.<Winform开发框架之权 ...

  10. 被调用的对象已与其客户端断开连接 win10_【完整案例】基于Socket开发TCP传输客户端...

    1 程序界面设计 TCP客户端在上位机开发中应用很广,大多数情况下,上位机软件都是作为一个TCP客户端来与PLC或其他服务器进行通信的.TCP客户端的主要功能就是连接服务器.发送数据.接收数据.断开连 ...

最新文章

  1. 复制windows对话框内容的方法
  2. SQL Server 2017 2019 Linux(Centos、Unbuntu16.04、Unbuntu18.04、Unbuntu20.04)安装过程详解
  3. codeforce 1070 H
  4. 使用sqlldr导入文本数据到oracle
  5. php服务器估算,使用zabbix API估算服务器磁盘空间可用天数
  6. Jdk14 都要出了,Jdk9 的新特性还不了解一下?
  7. debian stretch + kernel 4.4 固件发布(支持硬件加速),可安装kodi
  8. IMX6Q获取序列号方法
  9. java请求接口参数为json格式
  10. 2011英语二长难句
  11. 【计算机基础】HTTP 超文本传输协议
  12. 仿苹果 底部弹窗 选择列表
  13. Android 2 时代到来了,敢为天下先是我等求知若渴的程序员的优秀品质
  14. java 线性回归_java实现简单线性回归
  15. powershell:调用7z,haozip解压缩文件
  16. Paper:《The Illustrated Word2vec》翻译与解读
  17. 【C++】1018 锤子剪刀布 (20 分)
  18. 用 kali 工具 apache 搭建简易网站 LAMP
  19. (附源码)springboot基于java的校园二手书籍交易平台 毕业设计131558
  20. 主编编辑器如何收藏素材?

热门文章

  1. java 随机生成人员姓名
  2. Python爬虫【一】爬取移动版“微博辟谣”账号内容(API接口)
  3. steam网络相关问题-社区错误代码118/无法自动登陆/短期内来自您网络的失败登录过多/无法连接至steam网络(2021/2/18更新)
  4. 企划学院第十二期游学活动“聚合”郑州站圆满落下帷幕!
  5. CAJ文件转PDF的简单方法
  6. 抖音康辉机器人_央视主持人太会玩!康辉录抖音,笑死了!
  7. 谷歌浏览器中加载Vue插件
  8. 卸载vuecli3_针对遇到安装或卸载vue-cli失败的解决方案
  9. 世界杯直播背后的黑科技 腾讯云极速高清技术驱动体育直播发展
  10. C语言统计素数并求和