开始本教程中的示例项目门户网站之一注释。
要创建的对象是一个简单的三角形。这个对象有三个点三角形的结束点,它会使用一个中风的三角形边缘和内部填充。
添加一个新的c#类项目,并添加以下代码:
/ /三角形注释对象公共类AnnTriangleObject: AnnPolylineObject{/ /对象ID,我们选择一个用户定义的值公共常量intMyId = AnnObject.UserObjectId;公共AnnTriangleObject ():基地(){/ /设置一个IDSetId (MyId);/ /我们是closed-figure空当=真正的;}/ /我们的友好名称公共覆盖字符串FriendlyName{得到{返回“三角形”;}}}
因为没有现有的画与我们的设计师可以使用AnnTriangleObject类,我们需要创建自己的:
/ /我们的设计师画公共类AnnTriangleDrawDesigner: AnnDrawDesigner{公共AnnTriangleDrawDesigner (IAnnAutomationControl automationControl AnnContainer容器,AnnObject AnnObject):基地(annObject automationControl、容器){}/ /覆盖指针事件,添加3点为三角形公共覆盖boolOnPointerDown (AnnContainer发送方,AnnPointerEventArgs e){/ /基类是否想要处理的事件bool处理=基地.OnPointerDown(发送方,e);如果(处理)返回真正的;/ /我们将左边按钮如果(e。按钮! = AnnMouseButton.Left)返回假;/ /获取当前的点对象AnnObject AnnObject =这.TargetObject;intpointCount = annObject.Points.Count;如果(pointCount < 3){/ /添加当前点annObject.Points.Add (e.Location);/ /如果我们有0点,然后添加另一个。当我们移动指针,我们会的/ /移动最后一点(在本例中)如果(pointCount = = 0)annObject.Points.Add (e.Location);如果(pointCount = = 0){如果(!这.StartWorking ())返回真正的;}}其他的{/ /我们有3点,我们完成了这.EndWorking ();}返回真正的;}/ /覆盖指针移动事件公共覆盖boolOnPointerMove (AnnContainer发送方,AnnPointerEventArgs e){bool处理=基地.OnPointerMove(发送方,e);/ /看看我们有分/ /如果是这样,最后一点在对象移动到新位置AnnObject AnnObject =这.TargetObject;如果(annObject.Points。数> 0){annObject.Points [annObject.Points。数- 1)= e.Location;工作();返回真正的;}返回假;}公共覆盖boolOnPointerUp (AnnContainer发送方,AnnPointerEventArgs e){基地.OnPointerUp(发送方,e);返回真正的;}}
接下来,我们需要添加自动化对象的三角形:
私人静态无效InitializeTriangleObject (AnnAutomationManagerHelper注释){/ /创建一个新的自动化对象AnnAutomationObject automationObj =新AnnAutomationObject ();/ /设置对象IDautomationObj。Id = AnnTriangleObject.MyId;automationObj。Name =“三角形”;/ /设置它的设计师automationObj。DrawDesignerType =typeof(AnnTriangleDrawDesigner);automationObj。EditDesignerType =typeof(AnnPolylineEditDesigner);automationObj。RunDesignerType =typeof(AnnRunDesigner);/ /设置模板AnnTriangleObject annObj =新AnnTriangleObject ();/ /设置默认的中风annObj。中风= AnnStroke.Create (AnnSolidColorBrush.Create (“红色”),LeadLengthD.Create (2));annObj。填补= AnnSolidColorBrush.Create (“黄色”);automationObj。ObjectTemplate = annObj;/ /设置渲染器,AnnPolylineObject一样IAnnObjectRenderer polylineRenderer = annotations.AutomationManager.RenderingEngine.Renderers [AnnObject.PolylineObjectId];IAnnObjectRenderer渲染器=新AnnPolylineObjectRenderer ();渲染器。LabelRenderer = polylineRenderer.LabelRenderer;渲染器。LocationsThumbStyle = polylineRenderer.LocationsThumbStyle;渲染器。RotateGripperThumbStyle = polylineRenderer.RotateGripperThumbStyle;渲染器。RotateCenterThumbStyle = polylineRenderer.RotateCenterThumbStyle;annotations.AutomationManager.RenderingEngine.Renderers [AnnTriangleObject。MyId] =渲染器;/ /设置它的上下文菜单和工具栏的形象AnnAutomationObjectExtData extData =新AnnAutomationObjectExtData ();extData。快捷菜单=新Leadtools.Annotations.WinForms.ObjectContextMenu ();extData。DrawCursor = Cursors.Cross;位图的位图=新位图(System.Drawing.Imaging.PixelFormat.Format32bppArgb 24日24日);使用(图形g = Graphics.FromImage(位图)){g.Clear (Color.Transparent);g.DrawLine(笔。2黑色,12日,22日,22);g.DrawLine(笔。2黑色,22日,22日,22);g.DrawLine(笔。黑色,2,22日,12日,2);}extData。ToolBarImage =位图;extData。ToolBarToolTipText =“三角形”;automationObj。用户数据= extData;annotations.AutomationManager.Objects.Add (automationObj);}
最后,修改原始代码是这样的:
/ /创建助手_annotations =新AnnAutomationManagerHelper (automationManager);/ / - - - - - - - - - - - - - - - - - - - - - - - - - - -/ /创建我们的三角形自动化对象InitializeTriangleObject (_annotations);/ / - - - - - - - - - - - - - - - - - - - - - - - - - - -/ /创建工具栏并将其添加到我们的形式_annotations.CreateToolBar ();工具栏工具栏= _annotations.ToolBar;
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗Web查看器net
188宝金博怎么下载
支持的平台上
net, Java, Android和iOS / macOS组件
C / c++类库的API
HTML5 JavaScript库
你的邮件已经发送到支持!有人应该联系!如果你的问题是紧急请回到聊天。
聊天时间:
周一——周五,上午6点等
谢谢你的反馈!
请填写表单重新开始一个新的聊天。
所有代理目前离线。
聊天时间:
周一-周五
早上8:30 - 6点
联系我们请填写这张表格,我们将通过电子邮件联系你。
