CPDFTextAlignUI.xaml.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. using ComPDFKit.PDFPage.Edit;
  2. using ComPDFKitViewer.PdfViewer;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Windows;
  9. using System.Windows.Controls;
  10. using System.Windows.Controls.Primitives;
  11. using System.Windows.Data;
  12. using System.Windows.Documents;
  13. using System.Windows.Input;
  14. using System.Windows.Media;
  15. using System.Windows.Media.Imaging;
  16. using System.Windows.Navigation;
  17. using System.Windows.Shapes;
  18. namespace compdfkit_tools.Edit
  19. {
  20. public partial class CPDFTextAlignUI : UserControl
  21. {
  22. public event EventHandler<TextAlignType> TextAlignChanged;
  23. public CPDFTextAlignUI()
  24. {
  25. InitializeComponent();
  26. }
  27. public TextAlignType Alignment { get;private set; }
  28. public void SetFontAlign(TextAlignType newAlign)
  29. {
  30. ClearAlign();
  31. Alignment = newAlign;
  32. switch (newAlign)
  33. {
  34. case TextAlignType.AlignLeft:
  35. AlignLeftBtn.IsChecked = true;
  36. AlignLeftPath.Fill = Brushes.Blue;
  37. break;
  38. case TextAlignType.AlignMiddle:
  39. AlignCenterBtn.IsChecked = true;
  40. AlignCenterPath.Fill = Brushes.Blue;
  41. break;
  42. case TextAlignType.AlignRight:
  43. AlignRightBtn.IsChecked = true;
  44. AlignRightPath.Fill = Brushes.Blue;
  45. break;
  46. default:
  47. break;
  48. }
  49. }
  50. public void ClearAlign()
  51. {
  52. Alignment = TextAlignType.AlignNone;
  53. AlignLeftPath.Fill = Brushes.Gray;
  54. AlignCenterPath.Fill= Brushes.Gray;
  55. AlignRightPath.Fill= Brushes.Gray;
  56. AlignLeftBtn.IsChecked = false;
  57. AlignCenterBtn.IsChecked = false;
  58. AlignRightBtn.IsChecked= false;
  59. }
  60. private void TextAlignBtn_Click(object sender, RoutedEventArgs e)
  61. {
  62. ClearAlign();
  63. ToggleButton clickBtn = sender as ToggleButton;
  64. if (clickBtn != null && clickBtn.Tag!=null)
  65. {
  66. clickBtn.IsChecked = true;
  67. TextAlignType newAlign = Alignment;
  68. switch(clickBtn.Tag.ToString())
  69. {
  70. case "AlignLeft":
  71. newAlign = TextAlignType.AlignLeft;
  72. break;
  73. case "AlignCenter":
  74. newAlign = TextAlignType.AlignMiddle;
  75. break;
  76. case "AlignRight":
  77. newAlign= TextAlignType.AlignRight;
  78. break;
  79. default:
  80. break;
  81. }
  82. if(newAlign!=Alignment)
  83. {
  84. SetFontAlign(newAlign);
  85. TextAlignChanged?.Invoke(this, newAlign);
  86. }
  87. }
  88. }
  89. }
  90. }