LabelStyleChangeDialog.cs 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479
  1. using PaintDotNet.Annotation;
  2. using PaintDotNet.Annotation.Enum;
  3. using PaintDotNet.Annotation.Label;
  4. using PaintDotNet.Base.CommTool;
  5. using PaintDotNet.Base.SettingModel;
  6. using PaintDotNet.Setting.LabelComponent;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.ComponentModel;
  10. using System.Data;
  11. using System.Drawing;
  12. using System.IO;
  13. using System.Linq;
  14. using System.Reflection;
  15. using System.Text;
  16. using System.Threading.Tasks;
  17. using System.Windows.Forms;
  18. namespace PaintDotNet.ImageLabel
  19. {
  20. /// <summary>
  21. /// 标注列表 修改样式
  22. /// </summary>
  23. internal class LabelStyleChangeDialog : PdnBaseForm
  24. {
  25. private GroupBox groupBox1;
  26. private GroupBox groupBox2;
  27. private LabelTextControl textControl;
  28. private LabelMarkDateControl dateMarkControl;
  29. private LabelMarkTimeControl timeMarkControl;
  30. private LabelMarkPointControl pointMarkControl;
  31. private LabelMarkNumberControl numberMarkControl;
  32. private LabelMarkGainNumberControl gainNumberControl;
  33. private LabelStraightLineControl straightLineControl;
  34. private LabelStraightLineSegmentControl segmentLineControl;
  35. private LabelCurvePencilControl pencilControl;
  36. private LabelCurvePolylineControl polylineControl;
  37. private LabelCurveControl curveControl;
  38. private LabelCurveClosedControl closedCurveControl;
  39. private LabelArrowOneWayControl oneWayArrowControl;
  40. private LabelArrowTwoWayControl twoWayArrowControl;
  41. private LabelCircleControl circleControl;
  42. private LabelCircleOvalControl ovalControl;
  43. private LabelPolygonRectangleControl polygonRectangleControl;
  44. private LabelPolygonControl polygonControl;
  45. private LabelPolygonRoundedControl roundedRectangleControl;
  46. private DrawObject drawObject;
  47. private ParentStyleModel parentStyleModel;
  48. private Button button2;
  49. private Button button1;
  50. private Button button3;
  51. private AppWorkspace appWorkspace;
  52. public LabelStyleChangeDialog(AppWorkspace appWorkspace, DrawObject drawObject)
  53. {
  54. this.drawObject = drawObject;
  55. this.parentStyleModel = DrawRulerHelper.DeepCopyByReflect(this.drawObject.GetStyle());
  56. this.appWorkspace = appWorkspace;
  57. InitializeComponent();
  58. InitializeLanguageText();
  59. InitStyleControl(this.drawObject.drawToolType);
  60. }
  61. private void InitStyleControl(DrawToolType drawToolType)
  62. {
  63. this.groupBox2.Controls.Clear();
  64. switch (drawToolType)
  65. {
  66. case DrawToolType.DrawTextString: //文本
  67. textControl = new LabelTextControl((LabelStyleModel.Text)this.parentStyleModel);
  68. textControl.Location = new Point(10, 15);
  69. this.groupBox2.Controls.Add(textControl);
  70. break;
  71. case DrawToolType.DrawDateMark: //标记-日期
  72. dateMarkControl = new LabelMarkDateControl((LabelStyleModel.DateMark)this.parentStyleModel);
  73. dateMarkControl.Location = new Point(10, 15);
  74. this.groupBox2.Controls.Add(dateMarkControl);
  75. break;
  76. case DrawToolType.DrawTimeMark: //标记-时间
  77. timeMarkControl = new LabelMarkTimeControl((LabelStyleModel.TimeMark)this.parentStyleModel);
  78. timeMarkControl.Location = new Point(10, 15);
  79. this.groupBox2.Controls.Add(timeMarkControl);
  80. break;
  81. case DrawToolType.DrawPointMark: //标记-点标记
  82. pointMarkControl = new LabelMarkPointControl((LabelStyleModel.PointMark)this.parentStyleModel);
  83. pointMarkControl.Location = new Point(10, 15);
  84. this.groupBox2.Controls.Add(pointMarkControl);
  85. break;
  86. case DrawToolType.DrawNumberMark: //标记-数字标记
  87. numberMarkControl = new LabelMarkNumberControl((LabelStyleModel.NumberMark)this.parentStyleModel);
  88. numberMarkControl.Location = new Point(10, 15);
  89. this.groupBox2.Controls.Add(numberMarkControl);
  90. break;
  91. case DrawToolType.DrawGainNumber: //标记-放大倍数
  92. gainNumberControl = new LabelMarkGainNumberControl((LabelStyleModel.GainNumber)this.parentStyleModel);
  93. gainNumberControl.Location = new Point(10, 15);
  94. this.groupBox2.Controls.Add(gainNumberControl);
  95. break;
  96. case DrawToolType.DrawLine: //直线->直线
  97. straightLineControl = new LabelStraightLineControl((LabelStyleModel.LineChildLine)this.parentStyleModel);
  98. straightLineControl.Location = new Point(10, 15);
  99. this.groupBox2.Controls.Add(straightLineControl);
  100. break;
  101. case DrawToolType.DrawLineSegment: //直线->线段
  102. segmentLineControl = new LabelStraightLineSegmentControl((LabelStyleModel.LineChildLineSegment)this.parentStyleModel);
  103. segmentLineControl.Location = new Point(10, 15);
  104. this.groupBox2.Controls.Add(segmentLineControl);
  105. break;
  106. case DrawToolType.DrawPencil: //曲线->铅笔
  107. pencilControl = new LabelCurvePencilControl((LabelStyleModel.Pencil)this.parentStyleModel);
  108. pencilControl.Location = new Point(10, 15);
  109. this.groupBox2.Controls.Add(pencilControl);
  110. break;
  111. case DrawToolType.DrawPolygonLine: //曲线->折线
  112. polylineControl = new LabelCurvePolylineControl((LabelStyleModel.Polyline)this.parentStyleModel);
  113. polylineControl.Location = new Point(10, 15);
  114. this.groupBox2.Controls.Add(polylineControl);
  115. break;
  116. case DrawToolType.DrawCurve: //曲线->曲线
  117. curveControl = new LabelCurveControl((LabelStyleModel.CurveModel)this.parentStyleModel);
  118. curveControl.Location = new Point(10, 15);
  119. this.groupBox2.Controls.Add(curveControl);
  120. break;
  121. case DrawToolType.DrawClosedCurve: //曲线->闭合曲线
  122. closedCurveControl = new LabelCurveClosedControl((LabelStyleModel.ClosedCurve)this.parentStyleModel);
  123. closedCurveControl.Location = new Point(10, 15);
  124. this.groupBox2.Controls.Add(closedCurveControl);
  125. break;
  126. case DrawToolType.DrawOneArrowLine: //箭头->单向箭头
  127. oneWayArrowControl = new LabelArrowOneWayControl((LabelStyleModel.OneWayArrow)this.parentStyleModel);
  128. oneWayArrowControl.Location = new Point(10, 15);
  129. this.groupBox2.Controls.Add(oneWayArrowControl);
  130. break;
  131. case DrawToolType.DrawTwoArrowLine: //箭头->双向箭头
  132. twoWayArrowControl = new LabelArrowTwoWayControl((LabelStyleModel.TwoWayArrow)this.parentStyleModel);
  133. twoWayArrowControl.Location = new Point(10, 15);
  134. this.groupBox2.Controls.Add(twoWayArrowControl);
  135. break;
  136. case DrawToolType.DrawCircle: //圆->圆
  137. circleControl = new LabelCircleControl((LabelStyleModel.CircleModel)this.parentStyleModel);
  138. circleControl.Location = new Point(10, 15);
  139. this.groupBox2.Controls.Add(circleControl);
  140. break;
  141. case DrawToolType.DrawEllipse: //圆->椭圆
  142. ovalControl = new LabelCircleOvalControl((LabelStyleModel.Oval)this.parentStyleModel);
  143. ovalControl.Location = new Point(10, 15);
  144. this.groupBox2.Controls.Add(ovalControl);
  145. break;
  146. case DrawToolType.DrawRectangle: //多边形->矩形
  147. polygonRectangleControl = new LabelPolygonRectangleControl((LabelStyleModel.PolygonRectangle)this.parentStyleModel);
  148. polygonRectangleControl.Location = new Point(10, 15);
  149. this.groupBox2.Controls.Add(polygonRectangleControl);
  150. break;
  151. case DrawToolType.DrawPolygon: //多边形->多边形
  152. polygonControl = new LabelPolygonControl((LabelStyleModel.PolygonPolygon)this.parentStyleModel);
  153. polygonControl.Location = new Point(10, 15);
  154. this.groupBox2.Controls.Add(polygonControl);
  155. break;
  156. case DrawToolType.DrawRoundRectangle: //多边形->圆角矩形
  157. roundedRectangleControl = new LabelPolygonRoundedControl((LabelStyleModel.RoundedRectangle)this.parentStyleModel);
  158. roundedRectangleControl.Location = new Point(10, 15);
  159. this.groupBox2.Controls.Add(roundedRectangleControl);
  160. break;
  161. }
  162. }
  163. private void InitializeLanguageText()
  164. {
  165. this.groupBox1.Text = PdnResources.GetString("Menu.operation.text");
  166. this.button2.Text = PdnResources.GetString("Menu.File.Close.Text");
  167. this.button1.Text = PdnResources.GetString("Menu.application.text");
  168. this.groupBox2.Text = PdnResources.GetString("Menu.style.text");
  169. this.button3.Text = PdnResources.GetString("Menu.File.Save.Text");
  170. this.Text = PdnResources.GetString("Menu.Stylechanges.Text");
  171. }
  172. private void InitializeComponent()
  173. {
  174. this.groupBox1 = new System.Windows.Forms.GroupBox();
  175. this.button3 = new System.Windows.Forms.Button();
  176. this.button2 = new System.Windows.Forms.Button();
  177. this.button1 = new System.Windows.Forms.Button();
  178. this.groupBox2 = new System.Windows.Forms.GroupBox();
  179. this.groupBox1.SuspendLayout();
  180. this.SuspendLayout();
  181. //
  182. // groupBox1
  183. //
  184. this.groupBox1.Controls.Add(this.button3);
  185. this.groupBox1.Controls.Add(this.button2);
  186. this.groupBox1.Controls.Add(this.button1);
  187. this.groupBox1.Location = new System.Drawing.Point(13, 13);
  188. this.groupBox1.Name = "groupBox1";
  189. this.groupBox1.Size = new System.Drawing.Size(502, 52);
  190. this.groupBox1.TabIndex = 1;
  191. this.groupBox1.TabStop = false;
  192. this.groupBox1.Text = "操作";
  193. //
  194. // button3
  195. //
  196. this.button3.Location = new System.Drawing.Point(259, 20);
  197. this.button3.Name = "button3";
  198. this.button3.Size = new System.Drawing.Size(75, 23);
  199. this.button3.TabIndex = 2;
  200. this.button3.Text = "保存";
  201. this.button3.UseVisualStyleBackColor = true;
  202. this.button3.Click += new System.EventHandler(this.button3_Click);
  203. //
  204. // button2
  205. //
  206. this.button2.Location = new System.Drawing.Point(421, 20);
  207. this.button2.Name = "button2";
  208. this.button2.Size = new System.Drawing.Size(75, 23);
  209. this.button2.TabIndex = 1;
  210. this.button2.Text = "关闭";
  211. this.button2.UseVisualStyleBackColor = true;
  212. this.button2.Click += new System.EventHandler(this.button2_Click);
  213. //
  214. // button1
  215. //
  216. this.button1.Location = new System.Drawing.Point(340, 20);
  217. this.button1.Name = "button1";
  218. this.button1.Size = new System.Drawing.Size(75, 23);
  219. this.button1.TabIndex = 0;
  220. this.button1.Text = "应用";
  221. this.button1.UseVisualStyleBackColor = true;
  222. this.button1.Click += new System.EventHandler(this.button1_Click);
  223. //
  224. // groupBox2
  225. //
  226. this.groupBox2.Location = new System.Drawing.Point(13, 72);
  227. this.groupBox2.Name = "groupBox2";
  228. this.groupBox2.Size = new System.Drawing.Size(502, 186);
  229. this.groupBox2.TabIndex = 2;
  230. this.groupBox2.TabStop = false;
  231. this.groupBox2.Text = "样式";
  232. //
  233. // LabelStyleChangeDialog
  234. //
  235. this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
  236. this.ClientSize = new System.Drawing.Size(530, 270);
  237. this.Controls.Add(this.groupBox2);
  238. this.Controls.Add(this.groupBox1);
  239. this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
  240. this.MaximizeBox = false;
  241. this.MinimizeBox = false;
  242. this.Name = "LabelStyleChangeDialog";
  243. this.Text = "样式修改";
  244. this.Controls.SetChildIndex(this.groupBox1, 0);
  245. this.Controls.SetChildIndex(this.groupBox2, 0);
  246. this.groupBox1.ResumeLayout(false);
  247. this.ResumeLayout(false);
  248. }
  249. private void button1_Click(object sender, EventArgs e)
  250. {
  251. switch (this.drawObject.drawToolType)
  252. {
  253. case DrawToolType.DrawTextString: //文本
  254. DrawTextString drawTextString = (DrawTextString)this.drawObject;
  255. drawTextString.labelTextModel = textControl.getNowModel((LabelStyleModel.Text)this.parentStyleModel);
  256. drawTextString.isFirstClick = true;
  257. break;
  258. case DrawToolType.DrawDateMark: //标记-日期
  259. DrawDateMark drawDateMark = (DrawDateMark)this.drawObject;
  260. drawDateMark.labelDateMarkStyleModel = dateMarkControl.getNowModel((LabelStyleModel.DateMark)this.parentStyleModel);
  261. drawDateMark.isFirstClick = true;
  262. break;
  263. case DrawToolType.DrawTimeMark: //标记-时间
  264. DrawTimeMark drawTimeMark = (DrawTimeMark)this.drawObject;
  265. drawTimeMark.labelTimeMarkStyleModel = timeMarkControl.getNowModel((LabelStyleModel.TimeMark)this.parentStyleModel);
  266. drawTimeMark.isFirstClick = true;
  267. break;
  268. case DrawToolType.DrawPointMark: //标记-点标记
  269. DrawPointMark drawPointMark = (DrawPointMark)this.drawObject;
  270. drawPointMark.labelPointMarkStyleModel = pointMarkControl.getNowModel((LabelStyleModel.PointMark)this.parentStyleModel);
  271. break;
  272. case DrawToolType.DrawNumberMark: //标记-数字标记
  273. DrawNumberMark drawNumberMark = (DrawNumberMark)this.drawObject;
  274. drawNumberMark.labelNumberMarkStyleModel = numberMarkControl.getNowModel((LabelStyleModel.NumberMark)this.parentStyleModel);
  275. break;
  276. case DrawToolType.DrawGainNumber: //标记-放大倍数
  277. DrawGainNumber drawGainNumber = (DrawGainNumber)this.drawObject;
  278. drawGainNumber.labelGainNumberStyleModel = gainNumberControl.getNowModel((LabelStyleModel.GainNumber)this.parentStyleModel);
  279. drawGainNumber.isFirstClick = true;
  280. break;
  281. case DrawToolType.DrawLine: //直线->直线
  282. DrawLine drawLine = (DrawLine)this.drawObject;
  283. drawLine.labelLineStyleModel = straightLineControl.getNowModel((LabelStyleModel.LineChildLine)this.parentStyleModel);
  284. break;
  285. case DrawToolType.DrawLineSegment: //直线->线段
  286. DrawLineSegment drawLineSegment = (DrawLineSegment)this.drawObject;
  287. drawLineSegment.LabelLineSegment = segmentLineControl.getNowModel((LabelStyleModel.LineChildLineSegment)this.parentStyleModel);
  288. break;
  289. case DrawToolType.DrawPencil: //曲线->铅笔
  290. DrawPencil drawPencil = (DrawPencil)this.drawObject;
  291. drawPencil.LabelStyleModel = pencilControl.getNowModel((LabelStyleModel.Pencil)this.parentStyleModel);
  292. break;
  293. case DrawToolType.DrawPolygonLine: //曲线->折线
  294. DrawPolygonLine drawPolygonLine = (DrawPolygonLine)this.drawObject;
  295. drawPolygonLine.LabelPolylineStyleModel = polylineControl.getNowModel((LabelStyleModel.Polyline)this.parentStyleModel);
  296. break;
  297. case DrawToolType.DrawCurve: //曲线->曲线
  298. DrawCurve drawCurve = (DrawCurve)this.drawObject;
  299. drawCurve.LabelCurveModelStyleModel = curveControl.getNowModel((LabelStyleModel.CurveModel)this.parentStyleModel);
  300. break;
  301. case DrawToolType.DrawClosedCurve: //曲线->闭合曲线
  302. DrawClosedCurve drawClosedCurve = (DrawClosedCurve)this.drawObject;
  303. drawClosedCurve.labelClosedCurveStyleModel = closedCurveControl.getNowModel((LabelStyleModel.ClosedCurve)this.parentStyleModel);
  304. break;
  305. case DrawToolType.DrawOneArrowLine: //箭头->单向箭头
  306. DrawOneArrowLine drawOneArrowLine = (DrawOneArrowLine)this.drawObject;
  307. drawOneArrowLine.LabelOneArrowStyleModel = oneWayArrowControl.getNowModel((LabelStyleModel.OneWayArrow)this.parentStyleModel);
  308. break;
  309. case DrawToolType.DrawTwoArrowLine: //箭头->双向箭头
  310. DrawTwoArrowLine drawTwoArrowLine = (DrawTwoArrowLine)this.drawObject;
  311. drawTwoArrowLine.LabelTwoArrowStyleModel = twoWayArrowControl.getNowModel((LabelStyleModel.TwoWayArrow)this.parentStyleModel);
  312. break;
  313. case DrawToolType.DrawCircle: //圆->圆
  314. DrawCircle drawCircle = (DrawCircle)this.drawObject;
  315. drawCircle.labelCircleStyleModel = circleControl.getNowModel((LabelStyleModel.CircleModel)this.parentStyleModel);
  316. break;
  317. case DrawToolType.DrawEllipse: //圆->椭圆
  318. DrawEllipse drawEllipse = (DrawEllipse)this.drawObject;
  319. drawEllipse.labelOvalStyleModel = ovalControl.getNowModel((LabelStyleModel.Oval)this.parentStyleModel);
  320. break;
  321. case DrawToolType.DrawRectangle: //多边形->矩形
  322. DrawRectangle drawRectangle = (DrawRectangle)this.drawObject;
  323. drawRectangle.labelRectStyleModel = polygonRectangleControl.getNowModel((LabelStyleModel.PolygonRectangle)this.parentStyleModel);
  324. break;
  325. case DrawToolType.DrawPolygon: //多边形->多边形
  326. DrawPolygon drawPolygon = (DrawPolygon)this.drawObject;
  327. drawPolygon.polygonStyle = polygonControl.getNowModel((LabelStyleModel.PolygonPolygon)this.parentStyleModel);
  328. break;
  329. case DrawToolType.DrawRoundRectangle: //多边形->圆角矩形
  330. DrawRoundRectangle drawRoundRectangle = (DrawRoundRectangle)this.drawObject;
  331. drawRoundRectangle.labelRoundedRectStyleModel = roundedRectangleControl.getNowModel((LabelStyleModel.RoundedRectangle)this.parentStyleModel);
  332. break;
  333. }
  334. this.appWorkspace.ActiveDocumentWorkspace.Refresh();
  335. this.Close();
  336. }
  337. /// <summary>
  338. /// 关闭
  339. /// </summary>
  340. /// <param name="sender"></param>
  341. /// <param name="e"></param>
  342. private void button2_Click(object sender, EventArgs e)
  343. {
  344. this.Close();
  345. }
  346. /// <summary>
  347. /// 保存,保存到标注样式配置文件
  348. /// </summary>
  349. /// <param name="sender"></param>
  350. /// <param name="e"></param>
  351. private void button3_Click(object sender, EventArgs e)
  352. {
  353. switch (this.drawObject.drawToolType)
  354. {
  355. case DrawToolType.DrawTextString: //文本
  356. DrawTextString drawTextString = (DrawTextString)this.drawObject;
  357. drawTextString.labelTextModel = textControl.getNowModel((LabelStyleModel.Text)this.parentStyleModel);
  358. drawTextString.isFirstClick = true;
  359. Startup.instance.labelStyleModel.text = textControl.getNowModel((LabelStyleModel.Text)this.parentStyleModel);
  360. break;
  361. case DrawToolType.DrawDateMark: //标记-日期
  362. DrawDateMark drawDateMark = (DrawDateMark)this.drawObject;
  363. drawDateMark.labelDateMarkStyleModel = dateMarkControl.getNowModel((LabelStyleModel.DateMark)this.parentStyleModel);
  364. drawDateMark.isFirstClick = true;
  365. Startup.instance.labelStyleModel.dateMark = dateMarkControl.getNowModel((LabelStyleModel.DateMark)this.parentStyleModel);
  366. break;
  367. case DrawToolType.DrawTimeMark: //标记-时间
  368. DrawTimeMark drawTimeMark = (DrawTimeMark)this.drawObject;
  369. drawTimeMark.labelTimeMarkStyleModel = timeMarkControl.getNowModel((LabelStyleModel.TimeMark)this.parentStyleModel);
  370. drawTimeMark.isFirstClick = true;
  371. Startup.instance.labelStyleModel.timeMark = timeMarkControl.getNowModel((LabelStyleModel.TimeMark)this.parentStyleModel);
  372. break;
  373. case DrawToolType.DrawPointMark: //标记-点标记
  374. DrawPointMark drawPointMark = (DrawPointMark)this.drawObject;
  375. drawPointMark.labelPointMarkStyleModel = pointMarkControl.getNowModel((LabelStyleModel.PointMark)this.parentStyleModel);
  376. Startup.instance.labelStyleModel.pointMark = pointMarkControl.getNowModel((LabelStyleModel.PointMark)this.parentStyleModel);
  377. break;
  378. case DrawToolType.DrawNumberMark: //标记-数字标记
  379. DrawNumberMark drawNumberMark = (DrawNumberMark)this.drawObject;
  380. drawNumberMark.labelNumberMarkStyleModel = numberMarkControl.getNowModel((LabelStyleModel.NumberMark)this.parentStyleModel);
  381. Startup.instance.labelStyleModel.numberMark = numberMarkControl.getNowModel((LabelStyleModel.NumberMark)this.parentStyleModel);
  382. break;
  383. case DrawToolType.DrawGainNumber: //标记-放大倍数
  384. DrawGainNumber drawGainNumber = (DrawGainNumber)this.drawObject;
  385. drawGainNumber.labelGainNumberStyleModel = gainNumberControl.getNowModel((LabelStyleModel.GainNumber)this.parentStyleModel);
  386. drawGainNumber.isFirstClick = true;
  387. Startup.instance.labelStyleModel.gainNumber = gainNumberControl.getNowModel((LabelStyleModel.GainNumber)this.parentStyleModel);
  388. break;
  389. case DrawToolType.DrawLine: //直线->直线
  390. DrawLine drawLine = (DrawLine)this.drawObject;
  391. drawLine.labelLineStyleModel = straightLineControl.getNowModel((LabelStyleModel.LineChildLine)this.parentStyleModel);
  392. Startup.instance.labelStyleModel.lineChildLine = straightLineControl.getNowModel((LabelStyleModel.LineChildLine)this.parentStyleModel);
  393. break;
  394. case DrawToolType.DrawLineSegment: //直线->线段
  395. DrawLineSegment drawLineSegment = (DrawLineSegment)this.drawObject;
  396. drawLineSegment.LabelLineSegment = segmentLineControl.getNowModel((LabelStyleModel.LineChildLineSegment)this.parentStyleModel);
  397. Startup.instance.labelStyleModel.lineChildLineSegment = segmentLineControl.getNowModel((LabelStyleModel.LineChildLineSegment)this.parentStyleModel);
  398. break;
  399. case DrawToolType.DrawPencil: //曲线->铅笔
  400. DrawPencil drawPencil = (DrawPencil)this.drawObject;
  401. drawPencil.LabelStyleModel = pencilControl.getNowModel((LabelStyleModel.Pencil)this.parentStyleModel);
  402. Startup.instance.labelStyleModel.pencilModel = pencilControl.getNowModel((LabelStyleModel.Pencil)this.parentStyleModel);
  403. break;
  404. case DrawToolType.DrawPolygonLine: //曲线->折线
  405. DrawPolygonLine drawPolygonLine = (DrawPolygonLine)this.drawObject;
  406. drawPolygonLine.LabelPolylineStyleModel = polylineControl.getNowModel((LabelStyleModel.Polyline)this.parentStyleModel);
  407. break;
  408. case DrawToolType.DrawCurve: //曲线->曲线
  409. DrawCurve drawCurve = (DrawCurve)this.drawObject;
  410. drawCurve.LabelCurveModelStyleModel = curveControl.getNowModel((LabelStyleModel.CurveModel)this.parentStyleModel);
  411. Startup.instance.labelStyleModel.curveModel = curveControl.getNowModel((LabelStyleModel.CurveModel)this.parentStyleModel);
  412. break;
  413. case DrawToolType.DrawClosedCurve: //曲线->闭合曲线
  414. DrawClosedCurve drawClosedCurve = (DrawClosedCurve)this.drawObject;
  415. drawClosedCurve.labelClosedCurveStyleModel = closedCurveControl.getNowModel((LabelStyleModel.ClosedCurve)this.parentStyleModel);
  416. Startup.instance.labelStyleModel.closedCurveModel = closedCurveControl.getNowModel((LabelStyleModel.ClosedCurve)this.parentStyleModel);
  417. break;
  418. case DrawToolType.DrawOneArrowLine: //箭头->单向箭头
  419. DrawOneArrowLine drawOneArrowLine = (DrawOneArrowLine)this.drawObject;
  420. drawOneArrowLine.LabelOneArrowStyleModel = oneWayArrowControl.getNowModel((LabelStyleModel.OneWayArrow)this.parentStyleModel);
  421. Startup.instance.labelStyleModel.oneWayArrowModel = oneWayArrowControl.getNowModel((LabelStyleModel.OneWayArrow)this.parentStyleModel);
  422. break;
  423. case DrawToolType.DrawTwoArrowLine: //箭头->双向箭头
  424. DrawTwoArrowLine drawTwoArrowLine = (DrawTwoArrowLine)this.drawObject;
  425. drawTwoArrowLine.LabelTwoArrowStyleModel = twoWayArrowControl.getNowModel((LabelStyleModel.TwoWayArrow)this.parentStyleModel);
  426. Startup.instance.labelStyleModel.twoWayArrowModel = twoWayArrowControl.getNowModel((LabelStyleModel.TwoWayArrow)this.parentStyleModel);
  427. break;
  428. case DrawToolType.DrawCircle: //圆->圆
  429. DrawCircle drawCircle = (DrawCircle)this.drawObject;
  430. drawCircle.labelCircleStyleModel = circleControl.getNowModel((LabelStyleModel.CircleModel)this.parentStyleModel);
  431. Startup.instance.labelStyleModel.circleModel = circleControl.getNowModel((LabelStyleModel.CircleModel)this.parentStyleModel);
  432. break;
  433. case DrawToolType.DrawEllipse: //圆->椭圆
  434. DrawEllipse drawEllipse = (DrawEllipse)this.drawObject;
  435. drawEllipse.labelOvalStyleModel = ovalControl.getNowModel((LabelStyleModel.Oval)this.parentStyleModel);
  436. Startup.instance.labelStyleModel.ovalModel = ovalControl.getNowModel((LabelStyleModel.Oval)this.parentStyleModel);
  437. break;
  438. case DrawToolType.DrawRectangle: //多边形->矩形
  439. DrawRectangle drawRectangle = (DrawRectangle)this.drawObject;
  440. drawRectangle.labelRectStyleModel = polygonRectangleControl.getNowModel((LabelStyleModel.PolygonRectangle)this.parentStyleModel);
  441. Startup.instance.labelStyleModel.polygonRectangle = polygonRectangleControl.getNowModel((LabelStyleModel.PolygonRectangle)this.parentStyleModel);
  442. break;
  443. case DrawToolType.DrawPolygon: //多边形->多边形
  444. DrawPolygon drawPolygon = (DrawPolygon)this.drawObject;
  445. drawPolygon.polygonStyle = polygonControl.getNowModel((LabelStyleModel.PolygonPolygon)this.parentStyleModel);
  446. Startup.instance.labelStyleModel.polygonPolygon = polygonControl.getNowModel((LabelStyleModel.PolygonPolygon)this.parentStyleModel);
  447. break;
  448. case DrawToolType.DrawRoundRectangle: //多边形->圆角矩形
  449. DrawRoundRectangle drawRoundRectangle = (DrawRoundRectangle)this.drawObject;
  450. drawRoundRectangle.labelRoundedRectStyleModel = roundedRectangleControl.getNowModel((LabelStyleModel.RoundedRectangle)this.parentStyleModel);
  451. Startup.instance.labelStyleModel.roundedRectangle = roundedRectangleControl.getNowModel((LabelStyleModel.RoundedRectangle)this.parentStyleModel);
  452. break;
  453. }
  454. //以下保存xml文件信息
  455. string stageModelXml = XmlSerializeHelper.XmlSerialize<LabelStyleModel>(Startup.instance.labelStyleModel);
  456. string filePath = Application.StartupPath + "\\Config\\" + Startup.instance.SettingPrefix + "\\Label\\" + Startup.instance.configModel.LabelStyle;
  457. FileOperationHelper.WriteStringToFile(stageModelXml, filePath, FileMode.Create);
  458. this.appWorkspace.ActiveDocumentWorkspace.Refresh();
  459. this.Close();
  460. }
  461. }
  462. }