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

五华县建设局网站网络营销学什么内容

五华县建设局网站,网络营销学什么内容,wordpress主题带会员中心,如何做像淘宝一样的网站这篇文章是教大家怎样子创建自己的Ribbon按钮界面(如下图),以下示例代码在CAD2020中运行实现。 背景 创建一个属于自己的Ribbon按钮(如下图) 理解Ribbon、Panel、Tab的关系(如下图)&#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 name="ribbonCtrl">Ribbon控制器</param>/// <param name="title">选项卡标题</param>/// <param name="id">选项卡ID</param>/// <param name="isActive">是否置为当前</param>/// <returns>RibbonTab</returns>public 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 name="tab">Ribbon选项卡</param>/// <param name="title">面板标题</param>/// <returns>RibbonPanelSource</returns>public 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 name="panel">面板</param>/// <param name="name">按钮显示名字</param>/// <param name="cmd">需要绑定的命令</param>/// <param name="photoPath">图片路径</param>/// <returns></returns>public 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 name="ribbonCtrl">Ribbon控制器</param>/// <param name="title">选项卡标题</param>/// <param name="id">选项卡ID</param>/// <param name="isActive">是否置为当前</param>/// <returns>RibbonTab</returns>public 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 name="tab">Ribbon选项卡</param>/// <param name="title">面板标题</param>/// <returns>RibbonPanelSource</returns>public 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 name="panel">面板</param>/// <param name="name">按钮显示名字</param>/// <param name="cmd">需要绑定的命令</param>/// <param name="photoPath">图片路径</param>/// <returns></returns>public 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.shuangfujiaoyu.com/news/43792.html

相关文章:

  • 基于淘宝的网站开发分析沈阳百度推广优化
  • 专业建设的主要内容青岛官网seo公司
  • wordpress formseo描述快速排名
  • 瓦房店网站建设站长工具权重
  • seo网站营销推广百度应用市场app下载
  • 加强政府门户网站建设讲话百度手机助手app
  • 甘肃网站建设企业推荐网络营销案例分析
  • 没有备案的网站可以用ip访问吗品牌宣传文案范文
  • 专业做国际网站兰州seo优化
  • 学做彩票网站好友情链接交易网站源码
  • 深圳企业网站建设服务中心台州seo快速排名
  • 一个专门做网站建设的公司宁波seo关键词
  • 专门做app的网站推广app赚佣金平台
  • app软件开发公司电话百度seo公司哪家强一点
  • 石家庄seo网站推广seo推广公司有哪些
  • 做ppt做好的网站武汉网优化seo公司
  • 企业网站做推广推销一个产品的方案
  • wordpress 获取当前文章的分类seo公司上海牛巨微
  • 阿里云ecs做淘客网站互联网推广是什么工作内容
  • 网站上的产品五星怎样做优化如何制作网站和网页
  • 如何查询网站快照seo排名助手
  • 什么网站可以接效果图做2022新闻热点10条
  • 怎么查看vps网站服务器时间关键词搜索量排名
  • 网站ie浏览器不兼容汕头seo网站建设
  • 代理 网站前置审批什么是seo教程
  • 做网站买虚拟服务器留号码的广告网站不需要验证码
  • 合肥建设网站获客系统seo的基础优化
  • 青海餐饮网站建设公司职业技术培训机构
  • 单页网站上传教程排名点击工具
  • 芜湖网站制作学做网站需要学什么