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

网站建站销售怎么做有域名了网站怎么做

网站建站销售怎么做,有域名了网站怎么做,网站开发项目进度安排,中煤第三建设集团投标网站文章目录 前言相关链接项目专栏运行环境匹配图片封装组件新增类库项目选择依赖顺序并添加Nuget修改原本矩形方法运行结果#xff1a; 对矩形进行抽象封装抽象基类矩形抽象改造 圆形抽象封装代码运行结果 前言 为了更好地去学习WPFHalcon#xff0c;我决定去报个班学一下。原… 文章目录 前言相关链接项目专栏运行环境匹配图片封装组件新增类库项目选择依赖顺序并添加Nuget修改原本矩形方法运行结果 对矩形进行抽象封装抽象基类矩形抽象改造 圆形抽象封装代码运行结果 前言 为了更好地去学习WPFHalcon我决定去报个班学一下。原因无非是想换个工作。相关的教学视频来源于下方的Up主的提供的教程。这里只做笔记分享想要源码或者教学视频可以和他联系一下。 相关链接 微软系列技术教程 WPF 年度公益课程 Halcon开发 CSDN博客专栏 个人学习的Gitee 项目地址仓库 项目专栏 WPFHalcon实战项目 运行环境 .net core 8.0visual studio 2022halcon HDevelop 20.11windows 11 匹配图片 封装组件 Halcon官方的代码很多都是基于String的类型判断我们要对Halcon的代码进行一步简单的封装。 新增类库项目 选择依赖顺序并添加Nuget 让我们的WPF主程序依赖于HalconExtension类库 添加Nuget 修改原本矩形方法 原来的方法 // 显示绘制图案HalconWindow.HalconWindow.AttachDrawingObjectToWindow(rect);// 去除绘制图案//HalconWindow.HalconWindow.DetachDrawingObjectFromWindow(rect);rect.OnDrag(new HDrawingObject.HDrawingObjectCallbackClass((id, window, type) {var hv_type id.GetDrawingObjectParams(type);var row1 id.GetDrawingObjectParams(row1);var row2 id.GetDrawingObjectParams(row2);var column1 id.GetDrawingObjectParams(column1);var column2 id.GetDrawingObjectParams(column2);//打印坐标NLogHelper.Debug($拖动事件: {hv_type}:{row1} {column1} {row2} {column2} );}));现在的方法 using HalconDotNet; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace HalconExtension.Models {/// summary/// 矩形封装/// /summarypublic class HRectangleObj{public HTuple HType { get; private set; }public HTuple Row1 { get; private set; }public HTuple Row2 { get; private set; }public HTuple Column1 { get; private set; }public HTuple Column2 { get; private set; }public HDrawingObject DrawingObject { get; set; }/// summary/// HS组件主题/// /summarypublic HSmartWindowControlWPF WindowControlWPF { get; set; }public ActionHRectangleObj RefleshCallBack { get; set; }/// summary/// 初始化构造函数/// /summary/// param namewindowControlWPF/param/// param namerow1/param/// param namecolumn1/param/// param namerow2/param/// param namecolumn2/parampublic HRectangleObj(HSmartWindowControlWPF windowControlWPF,HTuple row1,HTuple column1,HTuple row2,HTuple column2){WindowControlWPF windowControlWPF;Row1 row1;Column1 column1;Row2 row2;Column2 column2;DrawingObject HDrawingObject.CreateDrawingObject(HDrawingObject.HDrawingObjectType.RECTANGLE1,Row1,Column1,Row2,Column2);}/// summary/// 默认构造函数/// /summary/// param namewindowControl/parampublic HRectangleObj(HSmartWindowControlWPF windowControl){WindowControlWPF windowControl;Row1 0;Column1 0;Row2 100;Column2 100;DrawingObject HDrawingObject.CreateDrawingObject(HDrawingObject.HDrawingObjectType.RECTANGLE1, Row1, Column1, Row2, Column2);//添加更新事件DrawingObject.OnDrag(Reflash);DrawingObject.OnResize(Reflash);}/// summary/// 显示图像/// /summarypublic void Show(){WindowControlWPF.HalconWindow.AttachDrawingObjectToWindow(DrawingObject);}/// summary/// 分离图像/// /summarypublic void Close(){WindowControlWPF.HalconWindow.DetachDrawingObjectFromWindow(DrawingObject);}/// summary/// 序列化输出/// /summary/// returns/returnspublic override string ToString(){return JsonConvert.SerializeObject(new{type HType.ToString(),row1 TwoDecimalPlaces(Row1),column1 TwoDecimalPlaces(Column1),row2 TwoDecimalPlaces(Row2),column2 TwoDecimalPlaces(Column2)});}public void Reflash(HDrawingObject drawid, HWindow window, string type){HType drawid.GetDrawingObjectParams(type);Row1 drawid.GetDrawingObjectParams(row1);Row2 drawid.GetDrawingObjectParams(row2);Column1 drawid.GetDrawingObjectParams(column1);Column2 drawid.GetDrawingObjectParams(column2);//将本身回调RefleshCallBack(this);}/// summary/// 保留两位小数/// /summary/// returns/returnsprivate string TwoDecimalPlaces(HTuple value){return decimal.Round(decimal.Parse(value.ToString()), 2).ToString();}} } 运行代码 InitRectangleBtn new RelayCommand(() {MsgHelper.Info(生成矩形);//rect HDrawingObject.CreateDrawingObject(HDrawingObject.HDrawingObjectType.RECTANGLE1, 100, 200, 300, 400); 显示绘制图案//HalconWindow.HalconWindow.AttachDrawingObjectToWindow(rect); 去除绘制图案HalconWindow.HalconWindow.DetachDrawingObjectFromWindow(rect);//rect.OnDrag(new HDrawingObject.HDrawingObjectCallbackClass((id, window, type) //{// var hv_type id.GetDrawingObjectParams(type);// var row1 id.GetDrawingObjectParams(row1);// var row2 id.GetDrawingObjectParams(row2);// var column1 id.GetDrawingObjectParams(column1);// var column2 id.GetDrawingObjectParams(column2);// //打印坐标// NLogHelper.Debug($拖动事件: {hv_type}:{row1} {column1} {row2} {column2} );//}));//初始化对象RectangleObj new HRectangleObj(HalconWindow);//刷新回调里面进行打印RectangleObj.RefleshCallBack (obj) {NLogHelper.Debug(obj.ToString());};//显示对象RectangleObj.Show();});运行结果 对矩形进行抽象封装 抽象就是abstract简单来说就是认为所有的基类都有相同的函数比如ToString,Show,Close等。抽象更利于我们的代码的规划。 其实很多语法是程序自己给自己加限制就是强迫自己按照某个逻辑进行代码开发。典型的例子就是JS转TS。这里不展开说明 抽象基类 using HalconDotNet; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace HalconExtension.Models {public abstract class HObjBase{/// summary/// HS组件主题/// /summarypublic HSmartWindowControlWPF WindowControlWPF { get; set; }public HDrawingObject DrawingObject { get; set; }public HTuple HType { get; private set; }public HObjBase(HSmartWindowControlWPF windowControlWPF){WindowControlWPF windowControlWPF;}/// summary/// 显示图像/// /summarypublic void Show(){WindowControlWPF.HalconWindow.AttachDrawingObjectToWindow(DrawingObject);}/// summary/// 分离图像/// /summarypublic void Close(){WindowControlWPF.HalconWindow.DetachDrawingObjectFromWindow(DrawingObject);}/// summary/// 保留两位小数/// /summary/// returns/returnspublic string TwoDecimalPlaces(HTuple value){return decimal.Round(decimal.Parse(value.ToString()), 2).ToString();}/// summary/// 序列化/// /summary/// returns/returnspublic abstract override string ToString();/// summary/// 刷新事件/// /summarypublic abstract void Reflash(HDrawingObject drawid, HWindow window, string type);} } 矩形抽象改造 using HalconDotNet; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace HalconExtension.Models {/// summary/// 矩形封装/// /summarypublic class HRectangleObj : HObjBase{public HTuple HType { get; private set; }public HTuple Row1 { get; private set; }public HTuple Row2 { get; private set; }public HTuple Column1 { get; private set; }public HTuple Column2 { get; private set; }/// summary/// 刷新回调/// /summarypublic ActionHRectangleObj RefleshCallBack { get; set; }/// summary/// 初始化构造函数/// /summary/// param namewindowControlWPF/param/// param namerow1/param/// param namecolumn1/param/// param namerow2/param/// param namecolumn2/parampublic HRectangleObj(HSmartWindowControlWPF windowControlWPF, HTuple row1, HTuple column1, HTuple row2, HTuple column2) : base(windowControlWPF){//WindowControlWPF windowControlWPF;Row1 row1;Column1 column1;Row2 row2;Column2 column2;DrawingObject HDrawingObject.CreateDrawingObject(HDrawingObject.HDrawingObjectType.RECTANGLE1, Row1, Column1, Row2, Column2);//添加更新事件DrawingObject.OnDrag(Reflash);DrawingObject.OnResize(Reflash);}/// summary/// 默认构造函数/// /summary/// param namewindowControl/parampublic HRectangleObj(HSmartWindowControlWPF windowControl) : base(windowControl){Row1 0;Column1 0;Row2 100;Column2 100;DrawingObject HDrawingObject.CreateDrawingObject(HDrawingObject.HDrawingObjectType.RECTANGLE1, Row1, Column1, Row2, Column2);//添加更新事件DrawingObject.OnDrag(Reflash);DrawingObject.OnResize(Reflash);}/// summary/// 序列化输出/// /summary/// returns/returnspublic override string ToString(){return JsonConvert.SerializeObject(new{type HType.ToString(),row1 TwoDecimalPlaces(Row1),column1 TwoDecimalPlaces(Column1),row2 TwoDecimalPlaces(Row2),column2 TwoDecimalPlaces(Column2)});}public override void Reflash(HDrawingObject drawid, HWindow window, string type){HType drawid.GetDrawingObjectParams(type);Row1 drawid.GetDrawingObjectParams(row1);Row2 drawid.GetDrawingObjectParams(row2);Column1 drawid.GetDrawingObjectParams(column1);Column2 drawid.GetDrawingObjectParams(column2);//将本身回调RefleshCallBack(this);}} } 圆形抽象封装 如果集成抽象的对象只有一个那么抽象就没有意义了。抽象一定是多个类继承才有使用的实际意义。 代码 using HalconDotNet; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Data.Common; using System.Linq; using System.Text; using System.Threading.Tasks;namespace HalconExtension.Models {public class HCircleObj : HObjBase{public HTuple Row { get; set; }public HTuple Column { get; set; }public HTuple Radius { get; set; }public HTuple HType { get; private set; }/// summary/// 刷新回调/// /summarypublic ActionHCircleObj RefleshCallBack { get; set; }public HCircleObj(HSmartWindowControlWPF windowControlWPF, HTuple row, HTuple col, HTuple radius):base(windowControlWPF){Row row;Column col;Radius radius;DrawingObject HDrawingObject.CreateDrawingObject(HDrawingObject.HDrawingObjectType.CIRCLE, Row, Column, Radius);//添加更新事件DrawingObject.OnDrag(Reflash);DrawingObject.OnResize(Reflash);}public HCircleObj(HSmartWindowControlWPF windowControlWPF) : this(windowControlWPF,64,64,64){}public override void Reflash(HDrawingObject drawid, HWindow window, string type){HType drawid.GetDrawingObjectParams(type);Row drawid.GetDrawingObjectParams(row);Column drawid.GetDrawingObjectParams(column);Radius drawid.GetDrawingObjectParams(radius);//将本身回调RefleshCallBack(this);}public override string ToString(){return JsonConvert.SerializeObject(new{type HType.ToString(),row TwoDecimalPlaces(Row),column TwoDecimalPlaces(Column),radius TwoDecimalPlaces(Radius),});}} } 运行结果
http://www.hkea.cn/news/14369972/

相关文章:

  • 苏州建网站必去苏州聚尚网络深圳网页设计招聘信息
  • 图书网站建设源码网站建设的客户
  • 长沙旅游景点大全排名新建网站怎么优化
  • 建设拍卖网站架设一个网站
  • 如何使用mysql数据库做网站北京东城区 网站建设
  • 自己怎么创网站成都网站建设思乐科技公司
  • 网站建设waoccwordpress 广告
  • ico网站建设宝安住房和建设局网站电话
  • 大兴企业官方网站建设正能量erp软件下载网站
  • angularjs做的网站有哪些查询网站外链
  • 网站建立不安全营销策划公司名字大气好听
  • 南阳做个网站多少钱磁力搜索器在线
  • 提交网站到百度盐城城南建设局一局网站
  • 查询数据的网站怎么做的阳江招聘网丰多采
  • 做图素材网站哪个好深圳做品牌网站
  • 长治网站制作的网站天远软件网站建设
  • 锦州网站建设新闻怎样用ps做网站首页图
  • 网站经常被黑网上店铺怎么开通
  • 网站建设的优势何江八佰yy影视
  • 邯郸住房城乡建设厅网站抖音代运营都做什么
  • 我想建设网站做网站需要考虑哪些
  • 网站建设实训实训心得wordpress免登录付费阅读
  • 如何免费做网站网页上海3d建模培训学校
  • 泰安北京网站建设公司阿里指数app下载
  • c 做彩票网站网站空间和域名
  • 做网站用的图片怎样压缩深圳企业网站推广
  • 长沙做网站微联讯点不错印刷网站模板下载
  • 杭州手机建站模板flash网站带后台
  • 国外扁平化风格网站做各国民宿租赁的网站
  • 自如网站做的好 服务口碑营销怎么做