当前位置: 首页 > news >正文

南阳千牛网站建设公司标志设计

南阳千牛网站建设,公司标志设计,nginx网站301重定向怎么做,做网站编程序这篇文章是教大家怎样子创建自己的Ribbon按钮界面#xff08;如下图#xff09;#xff0c;以下示例代码在CAD2020中运行实现。 背景 创建一个属于自己的Ribbon按钮#xff08;如下图#xff09; 理解Ribbon、Panel、Tab的关系#xff08;如下图#xff09;#xff… 这篇文章是教大家怎样子创建自己的Ribbon按钮界面如下图以下示例代码在CAD2020中运行实现。 背景 创建一个属于自己的Ribbon按钮如下图 理解Ribbon、Panel、Tab的关系如下图一个Tab包含多个Panel一个Panel包含多个RibbonButton 代码 using Autodesk.AutoCAD.Runtime; using Autodesk.Windows; using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Interop; using System.Windows.Media.Imaging;[assembly:CommandClass(typeof(CADBlogDemo.Ribbon))] namespace CADBlogDemo {public class Ribbon{[CommandMethod(RibbonCmd)]public void RibbonCmd(){//得到所有的Ribbon选项卡列表集合RibbonControl ribbonCtrl ComponentManager.Ribbon;if (ribbonCtrl null) return;//加个判断如果有了这个选项卡就不重复添加if (ribbonCtrl.Tabs.FirstOrDefault(x x.Title MyRibbon) ! null) return;//添加选项卡RibbonTab tab AddTab(ribbonCtrl, MyRibbon, RibbonId1, true);//添加面板RibbonPanelSource panel AddPanel(tab, 我就是我);//添加按钮RibbonButton button CreateRibbonButton(panel, 点我\n点我, Demo\n, ${Path.GetDirectoryName(typeof(Ribbon).Assembly.Location)}\Images\123.png);}/// summary/// 添加Ribbon选项卡/// /summary/// param nameribbonCtrlRibbon控制器/param/// param nametitle选项卡标题/param/// param nameid选项卡ID/param/// param nameisActive是否置为当前/param/// returnsRibbonTab/returnspublic RibbonTab AddTab( RibbonControl ribbonCtrl, string title, string id, bool isActive){RibbonTab tab new RibbonTab();tab.Title title;tab.Id id;ribbonCtrl.Tabs.Add(tab);tab.IsActive isActive;return tab;}/// summary/// 添加面板/// /summary/// param nametabRibbon选项卡/param/// param nametitle面板标题/param/// returnsRibbonPanelSource/returnspublic RibbonPanelSource AddPanel(RibbonTab tab, string title){RibbonPanelSource panelSource new RibbonPanelSource();panelSource.Title title;RibbonPanel ribbonPanel new RibbonPanel();ribbonPanel.Source panelSource;tab.Panels.Add(ribbonPanel);return panelSource;}/// summary/// 创建按钮/// /summary/// param namepanel面板/param/// param namename按钮显示名字/param/// param namecmd需要绑定的命令/param/// param namephotoPath图片路径/param/// returns/returnspublic RibbonButton CreateRibbonButton(RibbonPanelSource panel, string name, string cmd, string photoPath){RibbonButton button new RibbonButton();button.Text name;button.ShowText true;Bitmap bitmap new Bitmap(photoPath);BitmapSource bitmapSource Imaging.CreateBitmapSourceFromHBitmap(bitmap.GetHbitmap(), IntPtr.Zero, System.Windows.Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());button.Image bitmapSource; //按钮图片button.LargeImage bitmapSource; //按钮大图片button.Size RibbonItemSize.Large;button.Orientation System.Windows.Controls.Orientation.Vertical;button.CommandHandler new RibbonCommandHandler();button.CommandParameter cmd;panel.Items.Add(button);return button;}}public class RibbonCommandHandler : System.Windows.Input.ICommand{public bool CanExecute(object parameter){return true;}public event EventHandler CanExecuteChanged;public void Execute(object parameter){//is from Ribbon ButtonRibbonButton ribBtn parameter as RibbonButton;if (ribBtn ! null){//execute the command Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.SendStringToExecute((string)ribBtn.CommandParameter, true, false, true);}}} } 讲解 先得到所有的Tab列表集合判断是否已经存在自己的选项卡了 //得到所有的Ribbon选项卡列表集合RibbonControl ribbonCtrl ComponentManager.Ribbon;if (ribbonCtrl null) return;新建选项卡Tab /// summary/// 添加Ribbon选项卡/// /summary/// param nameribbonCtrlRibbon控制器/param/// param nametitle选项卡标题/param/// param nameid选项卡ID/param/// param nameisActive是否置为当前/param/// returnsRibbonTab/returnspublic RibbonTab AddTab( RibbonControl ribbonCtrl, string title, string id, bool isActive){RibbonTab tab new RibbonTab();tab.Title title;tab.Id id;ribbonCtrl.Tabs.Add(tab);tab.IsActive isActive;return tab;}新建面板panel /// summary/// 添加面板/// /summary/// param nametabRibbon选项卡/param/// param nametitle面板标题/param/// returnsRibbonPanelSource/returnspublic RibbonPanelSource AddPanel(RibbonTab tab, string title){RibbonPanelSource panelSource new RibbonPanelSource();panelSource.Title title;RibbonPanel ribbonPanel new RibbonPanel();ribbonPanel.Source panelSource;tab.Panels.Add(ribbonPanel);return panelSource;}新建按钮Ribbon /// summary/// 创建按钮/// /summary/// param namepanel面板/param/// param namename按钮显示名字/param/// param namecmd需要绑定的命令/param/// param namephotoPath图片路径/param/// returns/returnspublic RibbonButton CreateRibbonButton(RibbonPanelSource panel, string name, string cmd, string photoPath){RibbonButton button new RibbonButton();button.Text name;button.ShowText true;Bitmap bitmap new Bitmap(photoPath);BitmapSource bitmapSource Imaging.CreateBitmapSourceFromHBitmap(bitmap.GetHbitmap(), IntPtr.Zero, System.Windows.Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());button.Image bitmapSource; //按钮图片button.LargeImage bitmapSource; //按钮大图片button.Size RibbonItemSize.Large;button.Orientation System.Windows.Controls.Orientation.Vertical;button.CommandHandler new RibbonCommandHandler();button.CommandParameter cmd;panel.Items.Add(button);return button;}RibbonCommandHandler类 继承于ICommand类作用是控制按钮是否可用 public class RibbonCommandHandler : System.Windows.Input.ICommand{public bool CanExecute(object parameter){return true;}public event EventHandler CanExecuteChanged;public void Execute(object parameter){//is from Ribbon ButtonRibbonButton ribBtn parameter as RibbonButton;if (ribBtn ! null){//execute the command Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.SendStringToExecute((string)ribBtn.CommandParameter, true, false, true);}}}最后在CAD中用Netload添加编译的Dll运行“RibbonCmd”命令就可以看到选项卡了 最后 创建按钮的时候传入的是相对地址复制代码使用的时候可以先换成绝对地址实现效果后再换相对地址。赶紧去实现第一个按钮吧
http://www.dnsts.com.cn/news/97876.html

相关文章:

  • 专业做酒类营销的网站视觉传达设计就业方向和前景
  • 河南网站建设定制安全教育平台学生登录入口
  • 做网站的优化价格加强二级网站建设 招生
  • wordpress 类似建站做淘宝网站需要多大空间
  • 全网通网站建设自己做免费的网站吗
  • 昌图门户网站手机赚钱一天400元
  • 做搜狗pc网站软件下载定制旅游网站开发
  • wordpress导航条加搜索贺州网站seo
  • 电商网站服务排名黄岛建设局网站
  • 开锁行业在58做网站有活吗设计师自己的网站
  • 做app网站的公司哪家好装饰设计软件
  • 网站开发公司比较有名俄罗斯网站模版
  • 晋中做网站深圳做个商城网站设计
  • 模板网站怎么做301关键词调词平台费用
  • 北京市门户网站方圆网站建设
  • 广告公司的网站建设wordpress系统速度慢
  • 提示网站正在建设中网页设计师女生工资
  • 西安建筑网站建设南京公司网站建设怎么收费
  • 湖北省建设厅信息网站公司网站设计收费
  • 济南网站推广优化怎样制作一个自己的网页呢
  • 科技公司网站建设方案书模板娄底网站建设的公司
  • 怎样在工商局网站做公示景区智慧旅游网站建设
  • 学网站设计培训电话十堰网站建设联系电话
  • 主流的网站开发技术wordpress域名变了
  • 彩票网站建设方案开封景区网站建设项目方案
  • 织梦软件展示网站源码wordpress做成淘宝客
  • 合肥网站开发哪家好成都旅游景点大全排名
  • 江阴市住房与建设局网站青岛企业网站建设公司
  • 东莞网站设计效果wordpress最简单模板
  • 北京低价做网站人力资源网站