TextFieldPropertyViewModel.cs 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675
  1. using ComPDFKit.PDFAnnotation;
  2. using ComPDFKitViewer;
  3. using ComPDFKitViewer.AnnotEvent;
  4. using ComPDFKitViewer.PdfViewer;
  5. using PDF_Office.CustomControl.CompositeControl;
  6. using PDF_Office.Helper;
  7. using PDF_Office.Model;
  8. using PDF_Office.Model.From;
  9. using Prism.Commands;
  10. using Prism.Mvvm;
  11. using Prism.Regions;
  12. using Prism.Services.Dialogs;
  13. using System;
  14. using System.Collections.Generic;
  15. using System.Linq;
  16. using System.Text;
  17. using System.Threading.Tasks;
  18. using System.Windows;
  19. using System.Windows.Controls;
  20. using System.Windows.Media;
  21. namespace PDF_Office.ViewModels.Form
  22. {
  23. public class TextFieldPropertyViewModel : FormBaseVM, INavigationAware
  24. {
  25. #region 属性
  26. #region 一般
  27. private FormFieldType _formPos;
  28. public FormFieldType FormPos
  29. {
  30. get { return _formPos; }
  31. set { SetProperty(ref _formPos, value); ChangeFieldValue("FormPos"); }
  32. }
  33. #endregion
  34. #region 选项
  35. //默认值
  36. private string _defaultValue;
  37. public string DefaultValue
  38. {
  39. get { return _defaultValue; }
  40. set { SetProperty(ref _defaultValue, value); }
  41. }
  42. //多行
  43. private bool _isMultiline = false;
  44. public bool IsMultiLine
  45. {
  46. get { return _isMultiline; }
  47. set { SetProperty(ref _isMultiline, value); ChangeFieldValue("IsMultiLine"); }
  48. }
  49. //滚动显示长文本
  50. private bool _isScrollText = false;
  51. public bool IsScrollText
  52. {
  53. get { return _isScrollText; }
  54. set { SetProperty(ref _isScrollText, value); ChangeFieldValue("IsScrollText"); }
  55. }
  56. #endregion
  57. private FontFamily _fontFamily;
  58. public FontFamily FontFamilyItem
  59. {
  60. get { return _fontFamily; }
  61. set { SetProperty(ref _fontFamily, value); ChangeFieldValue("FontFamilyItem"); }
  62. }
  63. private FontStyle _fontStyle;
  64. public FontStyle FontStyleItem
  65. {
  66. get { return _fontStyle; }
  67. set { SetProperty(ref _fontStyle, value); ChangeFieldValue("FontStyleItem"); }
  68. }
  69. private FontWeight _fontWeight;
  70. public FontWeight FontWeightItem
  71. {
  72. get { return _fontWeight; }
  73. set { SetProperty(ref _fontWeight, value); ChangeFieldValue("FontWeightItem"); }
  74. }
  75. private C_TEXT_ALIGNMENT _textAlignment;
  76. public C_TEXT_ALIGNMENT TextAlignmentItem
  77. {
  78. get { return _textAlignment; }
  79. set { SetProperty(ref _textAlignment, value); ChangeFieldValue("TextAlignmentItem"); }
  80. }
  81. private string _content;
  82. public string FormContent
  83. {
  84. get { return _content; }
  85. set { SetProperty(ref _content, value); ChangeFieldValue("FormContent"); }
  86. }
  87. #endregion
  88. #region Command变量
  89. public DelegateCommand<string> NameTextChangedCommand { get; set; }
  90. public DelegateCommand<string> ToolTipTextChangedCommand { get; set; }
  91. public DelegateCommand<object> IsReadOnlyCheckedCommand { get; set; }
  92. public DelegateCommand<object> RequiredFieldCheckedCommand { get; set; }
  93. //外观
  94. public DelegateCommand<object> ThicknessChangedCommand { get; set; }
  95. public DelegateCommand<object> ResetColorCommand { get; set; }
  96. public DelegateCommand<object> ResetColorCheckedBtnCommand { get; set; }
  97. public DelegateCommand<object> FontFamilyChangedCommand { get; set; }
  98. public DelegateCommand<object> FontStyleChangedCommand { get; set; }
  99. public DelegateCommand<object> AlignmentChangedCommand { get; set; }
  100. public DelegateCommand<string> FormContentTextChangedCommand { get; set; }
  101. public DelegateCommand<object> IsMultiLineCheckedCommand { get; set; }
  102. public DelegateCommand<object> IsScrollToDisplayCheckedCommand { get; set; }
  103. public DelegateCommand<object> LineStyleCommand { get; set; }
  104. #endregion
  105. #region 变量
  106. public UpdateAttributeHelper AttribEvent;
  107. private CPDFViewer PDFViewer;
  108. private WidgetTextBoxArgs textBoxArgs;
  109. private bool IsCurrentWidget = false;
  110. private IDialogService dialogs;
  111. public List<ComboDataItem> Items { get; private set; }
  112. #endregion
  113. #region 初始化
  114. public TextFieldPropertyViewModel(IDialogService dialogService)
  115. {
  116. dialogs = dialogService;
  117. InitVariable();
  118. InitCommand();
  119. }
  120. private void InitVariable()
  121. {
  122. InitResetColor();
  123. InitFontFamilyComboBox();
  124. }
  125. private void InitResetColor()
  126. {
  127. ResetColorOne = new ResetColor()
  128. {
  129. BorderColor = new SolidColorBrush(Colors.Transparent),
  130. FontColor = new SolidColorBrush(Color.FromArgb(0xFF, 0x00, 0x00, 0x00)),
  131. FillColor = new SolidColorBrush(Colors.Transparent)
  132. };
  133. ResetColorTwo = new ResetColor()
  134. {
  135. BorderColor = new SolidColorBrush(Color.FromArgb(0xFF, 0x00, 0x00, 0x00)),
  136. FontColor = new SolidColorBrush(Color.FromArgb(0xFF, 0x00, 0x00, 0x00)),
  137. FillColor = new SolidColorBrush(Colors.Transparent)
  138. };
  139. ResetColorThree = new ResetColor()
  140. {
  141. BorderColor = new SolidColorBrush(Color.FromArgb(0xFF, 0x00, 0x00, 0x00)),
  142. FontColor = new SolidColorBrush(Color.FromArgb(0xFF, 0x00, 0x00, 0x00)),
  143. FillColor = new SolidColorBrush(Color.FromArgb(0xFF, 0xBD, 0xDF, 0xFD))
  144. };
  145. ResetColorForth = new ResetColor()
  146. {
  147. BorderColor = new SolidColorBrush(Color.FromArgb(0xFF, 0xff, 0x00, 0x00)),
  148. FontColor = new SolidColorBrush(Color.FromArgb(0xFF, 0xff, 0x00, 0x00)),
  149. FillColor = new SolidColorBrush(Colors.Transparent)
  150. };
  151. }
  152. private void InitFontFamilyComboBox()
  153. {
  154. Items = new List<ComboDataItem>();
  155. ComboDataItem item = new ComboDataItem("Courier", "Courier New");
  156. Items.Add(item);
  157. item = new ComboDataItem("Arial", "Helvetica");
  158. Items.Add(item);
  159. item = new ComboDataItem("Times New Roman", "Times New Roman");
  160. Items.Add(item);
  161. }
  162. private void InitCommand()
  163. {
  164. NameTextChangedCommand = new DelegateCommand<string>(NameTextChanged);
  165. ToolTipTextChangedCommand = new DelegateCommand<string>(ToolTipTextChanged);
  166. IsReadOnlyCheckedCommand = new DelegateCommand<object>(IsReadOnlyChecked);
  167. RequiredFieldCheckedCommand = new DelegateCommand<object>(RequiredFieldChecked);
  168. //外观
  169. ThicknessChangedCommand = new DelegateCommand<object>(ThicknessChanged);
  170. ResetColorCommand = new DelegateCommand<object>(ResetColorEvent);
  171. ResetColorCheckedBtnCommand = new DelegateCommand<object>(ResetColorCheckedBtn);
  172. FontFamilyChangedCommand = new DelegateCommand<object>(FontFamilyChanged);
  173. FontStyleChangedCommand = new DelegateCommand<object>(FontStyleChanged);
  174. AlignmentChangedCommand = new DelegateCommand<object>(AlignmentChanged);
  175. FormContentTextChangedCommand = new DelegateCommand<string>(FormContentTextChanged);
  176. IsMultiLineCheckedCommand = new DelegateCommand<object>(IsMultiLineChecked);
  177. IsScrollToDisplayCheckedCommand = new DelegateCommand<object>(IsScrollToDisplayChecked);
  178. LineStyleCommand = new DelegateCommand<object>(LineStyleBtnEvent);
  179. ChangeValueHandler -= ChangeValue;
  180. ChangeValueHandler += ChangeValue;
  181. }
  182. private void LineStyleBtnEvent(object obj)
  183. {
  184. if (obj != null)
  185. {
  186. switch ((string)obj)
  187. {
  188. case "Solid":
  189. BorderStyle = ComPDFKit.PDFAnnotation.C_BORDER_STYLE.BS_SOLID;
  190. break;
  191. case "Dotted":
  192. BorderStyle = ComPDFKit.PDFAnnotation.C_BORDER_STYLE.BS_DASHDED;
  193. break;
  194. }
  195. }
  196. }
  197. private void IsScrollToDisplayChecked(object obj)
  198. {
  199. if(obj != null)
  200. {
  201. IsScrollText = (bool)obj;
  202. }
  203. }
  204. private void IsMultiLineChecked(object obj)
  205. {
  206. if (obj != null)
  207. {
  208. IsMultiLine = (bool)obj;
  209. }
  210. }
  211. private void FormContentTextChanged(string obj)
  212. {
  213. if(obj != null)
  214. {
  215. FormContent = obj;
  216. }
  217. }
  218. private void AlignmentChanged(object obj)
  219. {
  220. if (obj != null)
  221. {
  222. var combo = (ComboBoxItem)obj;
  223. if (combo != null)
  224. {
  225. switch (combo.Content)
  226. {
  227. case "Left":
  228. TextAlignmentItem = C_TEXT_ALIGNMENT.ALIGNMENT_LEFT;
  229. break;
  230. case "Center":
  231. TextAlignmentItem = C_TEXT_ALIGNMENT.ALIGNMENT_CENTER;
  232. break;
  233. case "Right":
  234. TextAlignmentItem = C_TEXT_ALIGNMENT.ALIGNMENT_RIGHT;
  235. break;
  236. }
  237. }
  238. }
  239. }
  240. private void FontStyleChanged(object obj)
  241. {
  242. if(obj != null)
  243. {
  244. var combo = (ComboBoxItem)obj;
  245. if(combo != null)
  246. {
  247. switch(combo.Content)
  248. {
  249. case "Regular":
  250. FontStyleItem = FontStyles.Normal;
  251. FontWeightItem = FontWeights.Normal;
  252. break;
  253. case "Bold":
  254. FontStyleItem = FontStyles.Normal;
  255. FontWeightItem = FontWeights.Bold;
  256. break;
  257. case "Italic":
  258. FontStyleItem = FontStyles.Italic;
  259. FontWeightItem = FontWeights.Normal;
  260. break;
  261. case "Bold Italic":
  262. FontStyleItem = FontStyles.Italic;
  263. FontWeightItem = FontWeights.Bold;
  264. break;
  265. }
  266. }
  267. }
  268. }
  269. private void FontFamilyChanged(object obj)
  270. {
  271. if (obj != null && string.IsNullOrEmpty((string)obj) == false)
  272. {
  273. switch ((string)obj)
  274. {
  275. case "Courier":
  276. FontFamilyItem = new FontFamily("Courier");
  277. break;
  278. case "Helvetica":
  279. FontFamilyItem = new FontFamily("Helvetica");
  280. break;
  281. case "Times Roman":
  282. FontFamilyItem = new FontFamily("Times Roman");
  283. break;
  284. }
  285. }
  286. }
  287. private void ResetColorCheckedBtn(object obj)
  288. {
  289. if (obj != null)
  290. {
  291. var str = obj as string;
  292. if (str != null)
  293. {
  294. switch (str)
  295. {
  296. case "One":
  297. BorderColor = ResetColorOne.BorderColor.Color;
  298. ContentColor = ResetColorOne.FontColor.Color;
  299. FillColor = ResetColorOne.FillColor.Color;
  300. break;
  301. case "Two":
  302. BorderColor = ResetColorTwo.BorderColor.Color;
  303. ContentColor = ResetColorTwo.FontColor.Color;
  304. FillColor = ResetColorTwo.FillColor.Color;
  305. break;
  306. case "Three":
  307. BorderColor = ResetColorThree.BorderColor.Color;
  308. ContentColor = ResetColorThree.FontColor.Color;
  309. FillColor = ResetColorThree.FillColor.Color;
  310. break;
  311. case "Forth":
  312. BorderColor = ResetColorForth.BorderColor.Color;
  313. ContentColor = ResetColorForth.FontColor.Color;
  314. FillColor = ResetColorForth.FillColor.Color;
  315. break;
  316. }
  317. }
  318. }
  319. }
  320. public event EventHandler<int> SelectResetColorBtnHandler;
  321. private void UpdataSelectResetColorBtn()
  322. {
  323. int result = 0;
  324. if (UpdataSelectResetColor(ResetColorOne))
  325. {
  326. result = 1;
  327. }
  328. else if (UpdataSelectResetColor(ResetColorTwo))
  329. {
  330. result = 2;
  331. }
  332. else if (UpdataSelectResetColor(ResetColorThree))
  333. {
  334. result = 3;
  335. }
  336. else if (UpdataSelectResetColor(ResetColorForth))
  337. {
  338. result = 4;
  339. }
  340. SelectResetColorBtnHandler?.Invoke(null, result);
  341. }
  342. private bool UpdataSelectResetColor(ResetColor reset)
  343. {
  344. if (reset.FillColor.Color == FillColor &&
  345. reset.FontColor.Color == ContentColor &&
  346. reset.BorderColor.Color == BorderColor
  347. )
  348. {
  349. return true;
  350. }
  351. return false;
  352. }
  353. private void ResetColorEvent(object obj)
  354. {
  355. //if(obj != null && (ResetColor)obj != null)
  356. // {
  357. // var resetcolor = obj as ResetColor;
  358. // }
  359. bool result = true;
  360. DialogParameters value = new DialogParameters();
  361. value.Add(ParameterNames.PDFViewer, PDFViewer);
  362. dialogs.ShowDialog(DialogNames.EditPresetColorsDialog, value, e =>
  363. {
  364. if (e.Result != ButtonResult.OK)
  365. {
  366. result = false;
  367. }
  368. EditPresetColorsDialogViewModel DialogVM = e.Parameters.GetValue<EditPresetColorsDialogViewModel>(ParameterNames.DataModel);
  369. if (DialogVM != null)
  370. {
  371. // CreateSignature(DialogVM);
  372. }
  373. });
  374. if (!result)
  375. {
  376. return;
  377. }
  378. }
  379. private void ThicknessChanged(object obj)
  380. {
  381. if(obj != null)
  382. {
  383. BorderThiness = (double)obj;
  384. }
  385. }
  386. #endregion
  387. #region 一般处理
  388. private void NameTextChanged(string obj)
  389. {
  390. if(string.IsNullOrEmpty(obj) == false && IsCurrentWidget == true)
  391. {
  392. NameStr = obj;
  393. }
  394. }
  395. private void ToolTipTextChanged(string obj)
  396. {
  397. if (string.IsNullOrEmpty(obj) == false)
  398. {
  399. ToolTipStr = obj;
  400. }
  401. }
  402. private void IsReadOnlyChecked(object obj)
  403. {
  404. if(obj is bool)
  405. {
  406. IsReadOnly = (bool)obj;
  407. }
  408. }
  409. private void RequiredFieldChecked(object obj)
  410. {
  411. if (obj is bool)
  412. {
  413. IsRequiredField = (bool)obj;
  414. }
  415. }
  416. #endregion
  417. #region 外观处理
  418. #endregion
  419. #region 选项处理
  420. #endregion
  421. #region Navegation
  422. public bool IsNavigationTarget(NavigationContext navigationContext)
  423. {
  424. return true;
  425. }
  426. public void OnNavigatedFrom(NavigationContext navigationContext)
  427. {
  428. isCreateWidget = false;
  429. IsCurrentWidget = false;
  430. textBoxArgs = null;
  431. }
  432. public void OnNavigatedTo(NavigationContext navigationContext)
  433. {
  434. navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
  435. navigationContext.Parameters.TryGetValue<UpdateAttributeHelper>(ParameterNames.AnnotEvent, out AttribEvent);
  436. navigationContext.Parameters.TryGetValue<WidgetTextBoxArgs>("WidgetArgs", out textBoxArgs);
  437. GetWidgeText();
  438. UpdataSelectResetColorBtn();
  439. }
  440. bool isCreateWidget = false;
  441. private void GetWidgeText()
  442. {
  443. //新建的form表单
  444. if (textBoxArgs == null)
  445. {
  446. PDFViewer.SetMouseMode(MouseModes.FormEditTool);
  447. WidgetTextBoxArgs textArgs = new WidgetTextBoxArgs();
  448. textArgs.BgColor = Colors.LightGray;
  449. textArgs.FieldName = "TextBox";
  450. textBoxArgs = textArgs;
  451. PDFViewer.SetToolParam(textBoxArgs);
  452. isCreateWidget = true;
  453. }
  454. else
  455. {
  456. PDFViewer.SetToolParam(new AnnotHandlerEventArgs());
  457. isCreateWidget = false;
  458. }
  459. GetProperty();
  460. IsCurrentWidget = true;
  461. }
  462. private void GetProperty()
  463. {
  464. if (textBoxArgs != null)
  465. {
  466. NameStr = textBoxArgs.FieldName;
  467. IsRequiredField = textBoxArgs.IsRequired;
  468. IsMultiLine = textBoxArgs.IsMultiLine;
  469. IsLocked = textBoxArgs.Locked;
  470. ToolTipStr = textBoxArgs.Tooltip;
  471. FillColor = textBoxArgs.BgColor;
  472. ContentColor = textBoxArgs.FontColor;
  473. BorderColor = textBoxArgs.LineColor;
  474. BorderThiness = textBoxArgs.LineWidth;
  475. BorderStyle = textBoxArgs.BorderStyle;
  476. //避免BorderStyle跟上一个值相同,而没触发更改IsSolid属性
  477. if (BorderStyle == C_BORDER_STYLE.BS_SOLID)
  478. IsSolid = true;
  479. else
  480. IsSolid = false;
  481. }
  482. }
  483. //更改基类公共属性后,触发的事件
  484. private void ChangeValue(object sender, FormAttributeType e)
  485. {
  486. switch (e)
  487. {
  488. case FormAttributeType.Name:
  489. textBoxArgs.FieldName = NameStr;
  490. AttribEvent?.UpdateAttrib(AnnotAttrib.FieldName, NameStr);
  491. break;
  492. case FormAttributeType.ToolTip:
  493. textBoxArgs.Tooltip = ToolTipStr;
  494. AttribEvent?.UpdateAttrib(AnnotAttrib.Tooltip, ToolTipStr);
  495. break;
  496. case FormAttributeType.IsSolid:
  497. textBoxArgs.BorderStyle = BorderStyle;
  498. AttribEvent?.UpdateAttrib(AnnotAttrib.LineStyle, BorderStyle);
  499. break;
  500. case FormAttributeType.IsLocked:
  501. textBoxArgs.Locked = IsLocked;
  502. AttribEvent?.UpdateAttrib(AnnotAttrib.Locked, IsLocked);
  503. break;
  504. case FormAttributeType.HeightSize:
  505. textBoxArgs.Height = HeightSize;
  506. //AttribEvent?.UpdateAttrib(AnnotAttrib.w, HeightSize);
  507. break;
  508. case FormAttributeType.BorderThiness:
  509. textBoxArgs.LineWidth = BorderThiness;
  510. AttribEvent?.UpdateAttrib(AnnotAttrib.Thickness, BorderThiness);
  511. break;
  512. case FormAttributeType.BorderColor:
  513. textBoxArgs.BgColor = BorderColor;
  514. AttribEvent?.UpdateAttrib(AnnotAttrib.Color, BorderColor);
  515. break;
  516. case FormAttributeType.ContentColor:
  517. textBoxArgs.FontColor = ContentColor;
  518. AttribEvent?.UpdateAttrib(AnnotAttrib.FontColor, ContentColor);
  519. break;
  520. case FormAttributeType.FillColor:
  521. textBoxArgs.BgColor = FillColor;
  522. AttribEvent?.UpdateAttrib(AnnotAttrib.FillColor, FillColor);
  523. break;
  524. case FormAttributeType.IsReadOnly:
  525. textBoxArgs.ReadOnly = IsReadOnly;
  526. AttribEvent?.UpdateAttrib(AnnotAttrib.ReadOnly, IsReadOnly);
  527. break;
  528. case FormAttributeType.WidthSize:
  529. textBoxArgs.Width = WidthSize;
  530. break;
  531. case FormAttributeType.IsRequiredField:
  532. textBoxArgs.IsRequired = IsRequiredField;
  533. AttribEvent?.UpdateAttrib(AnnotAttrib.IsRequired, IsRequiredField);
  534. break;
  535. case FormAttributeType.FontFamily:
  536. textBoxArgs.FontFamily = FontFamilyItem.Source;
  537. AttribEvent?.UpdateAttrib(AnnotAttrib.FontFamily, FontFamilyItem.Source);
  538. break;
  539. }
  540. AttribEvent?.UpdateAnnot();
  541. }
  542. private void ChangeFieldValue(string tag)
  543. {
  544. switch (tag)
  545. {
  546. case "FormPos":
  547. textBoxArgs.FormField = FormField.Visible;
  548. AttribEvent?.UpdateAttrib(AnnotAttrib.FormField, FormPos);
  549. break;
  550. case "FontFamilyItem":
  551. textBoxArgs.FontFamily = FontFamilyItem.Source;
  552. AttribEvent?.UpdateAttrib(AnnotAttrib.FontFamily, FontFamilyItem.Source);
  553. break;
  554. case "FontStyleItem":
  555. textBoxArgs.FontStyle = FontStyleItem;
  556. AttribEvent?.UpdateAttrib(AnnotAttrib.FontStyle, FontStyleItem);
  557. break;
  558. case "FontWeightItem":
  559. textBoxArgs.FontWeight = FontWeightItem;
  560. AttribEvent?.UpdateAttrib(AnnotAttrib.FontWeight, FontWeightItem);
  561. break;
  562. case "TextAlignmentItem":
  563. textBoxArgs.Alignment = TextAlignmentItem;
  564. AttribEvent?.UpdateAttrib(AnnotAttrib.TextAlign, TextAlignmentItem);
  565. break;
  566. case "FormContent":
  567. textBoxArgs.Content = FormContent;
  568. AttribEvent?.UpdateAttrib(AnnotAttrib.Text, FormContent);
  569. break;
  570. case "IsScrollText":
  571. textBoxArgs.ScrollFlag = IsScrollText;
  572. AttribEvent?.UpdateAttrib(AnnotAttrib.ScrollFlag, IsScrollText);
  573. break;
  574. case "IsMultiLine":
  575. textBoxArgs.IsMultiLine = IsMultiLine;
  576. AttribEvent?.UpdateAttrib(AnnotAttrib.IsMutilLine, IsMultiLine);
  577. break;
  578. }
  579. AttribEvent?.UpdateAnnot();
  580. }
  581. #endregion
  582. }
  583. }