HomePageExtractDialog.xaml.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. using PDF_Office.CustomControl;
  2. using PDF_Office.Helper;
  3. using PDF_Office.ViewModels.Dialog.ConverterDialogs;
  4. using PDF_Office.ViewModels.Dialog.HomePageToolsDialogs;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Diagnostics;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Windows;
  12. using System.Windows.Controls;
  13. using System.Windows.Data;
  14. using System.Windows.Documents;
  15. using System.Windows.Input;
  16. using System.Windows.Media;
  17. using System.Windows.Media.Imaging;
  18. using System.Windows.Navigation;
  19. using System.Windows.Shapes;
  20. namespace PDF_Office.Views.Dialog.HomePageToolsDialogs
  21. {
  22. /// <summary>
  23. /// MainPageExtractDialog.xaml 的交互逻辑
  24. /// </summary>
  25. public partial class HomePageExtractDialog : UserControl
  26. {
  27. public HomePageExtractDialog()
  28. {
  29. InitializeComponent();
  30. }
  31. private void PageTurningPreview_Loaded(object sender, RoutedEventArgs e)
  32. {
  33. ExtractPreview.document = ((HomePageExtractDialogViewModel)this.DataContext).document;
  34. char[] enumerationSeparator = new char[] { ',' };
  35. char[] rangeSeparator = new char[] { '-' };
  36. if (!CommonHelper.GetPagesInRange(ref ExtractPreview.PageIndexLists, "1-" + ExtractPreview.document.PageCount.ToString(), ExtractPreview.document.PageCount, enumerationSeparator, rangeSeparator))
  37. { //TODO
  38. Trace.WriteLine("输入不对");
  39. MessageBoxEx.Show("输入不对");
  40. return;
  41. }
  42. ExtractPreview.AwaitRenderBitmap(ExtractPreview.document);
  43. ExtractPreview.PageIndex.Text = ExtractPreview.document.PageCount.ToString();
  44. }
  45. private void WritableComboBox_Loaded(object sender, RoutedEventArgs e)
  46. {
  47. PageRangeComboBox.writableComboBox.SelectionChanged += PageRangeComboBox_SelectionChanged;
  48. PageRangeComboBox.writableTextBox.TextChanged += WritableTextBox_TextChanged;
  49. }
  50. private void WritableTextBox_TextChanged(object sender, TextChangedEventArgs e)
  51. {
  52. string PageRangeSelectIndex = ((HomePageExtractDialogViewModel)this.DataContext).PageRangeSelectIndex;
  53. var currentViewer = ((HomePageExtractDialogViewModel)this.DataContext).currentViewer;
  54. string PageRange = "";
  55. var PageRangeText = ((HomePageExtractDialogViewModel)this.DataContext).PageRangeText;
  56. HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref PageRange, PageRangeText);
  57. char[] enumerationSeparator = new char[] { ',' };
  58. char[] rangeSeparator = new char[] { '-' };
  59. if (!CommonHelper.GetPagesInRange(ref ExtractPreview.PageIndexLists, PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
  60. { //TODO
  61. ExtractPreview.PageIndexLists.Add(0);
  62. return;
  63. }
  64. else
  65. {
  66. ExtractPreview.PageIndex.Text = (ExtractPreview.PageIndexLists.Last<int>() + 1).ToString();
  67. ExtractPreview.CurrentIndex = 0;
  68. ExtractPreview.CurrentPage.Text = (ExtractPreview.PageIndexLists[ExtractPreview.CurrentIndex] + 1).ToString();
  69. ExtractPreview.AwaitRenderBitmap(ExtractPreview.document);
  70. }
  71. }
  72. private void PageRangeComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
  73. {
  74. string PageRangeSelectIndex = ((HomePageExtractDialogViewModel)this.DataContext).PageRangeSelectIndex;
  75. var currentViewer = ((HomePageExtractDialogViewModel)this.DataContext).currentViewer;
  76. string PageRange = "";
  77. var PageRangeText = ((HomePageExtractDialogViewModel)this.DataContext).PageRangeText;
  78. if (PageRangeSelectIndex == "0" || PageRangeSelectIndex == "1" || PageRangeSelectIndex == "2")
  79. {
  80. HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref PageRange, PageRangeText);
  81. char[] enumerationSeparator = new char[] { ',' };
  82. char[] rangeSeparator = new char[] { '-' };
  83. if (!CommonHelper.GetPagesInRange(ref ExtractPreview.PageIndexLists, PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
  84. { //TODO
  85. Trace.WriteLine("输入不对");
  86. MessageBoxEx.Show("输入不对");
  87. return;
  88. }
  89. }
  90. ExtractPreview.PageIndex.Text = (ExtractPreview.PageIndexLists.Last<int>() + 1).ToString();
  91. ExtractPreview.CurrentIndex = 0;
  92. ExtractPreview.CurrentPage.Text = (ExtractPreview.PageIndexLists[ExtractPreview.CurrentIndex] + 1).ToString();
  93. ExtractPreview.AwaitRenderBitmap(ExtractPreview.document);
  94. }
  95. }
  96. }