using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace Compdfkit_Tools.PDFControlUI
{
///
/// CPDFPageEditUI.xaml 的交互逻辑
///
public partial class CPDFPageExtractUI : UserControl
{
public int MaxiumIndex
{
get;
set;
}
private int _maxIndex;
public int MaxIndex
{
get => _maxIndex;
set
{
_maxIndex = value;
MaxPageTextBlock.Text = _maxIndex.ToString();
}
}
public string CurrentPageRange
{
set => CustomPageRangeTextBox.Text = value;
}
public PageRange PageRange
{
set
{
if (value == PageRange.AllPages)
{
AllPagesRadioButton.IsChecked = true;
}
else if (value == PageRange.OddPages)
{
OddPagesRadioButton.IsChecked = true;
}
else if (value == PageRange.EvenPages)
{
EvenPagesRadioButton.IsChecked = true;
}
else
{
CustomPagesRadioButton.IsChecked = true;
}
}
}
public event EventHandler PageRangeChanged;
public event EventHandler CustomPageRangeChanged;
public event EventHandler SeparateChanged;
public event EventHandler DeleteChanged;
public event EventHandler ExtractEvent;
public event EventHandler CancelEvent;
public CPDFPageExtractUI()
{
InitializeComponent();
}
private void PageRangeRadioButtonClick(object sender, RoutedEventArgs e)
{
var radioButton = sender as RadioButton;
PageRange pageRange = (PageRange)System.Enum.Parse(typeof(PageRange), radioButton.Tag.ToString());
if(pageRange == PageRange.AllPages)
{
DeleteCheckBox.IsChecked = false;
DeleteChanged?.Invoke(null, (bool)false);
}
PageRangeChanged?.Invoke(sender, pageRange);
}
private void SeparateCheckBoxClick(object sender, RoutedEventArgs e)
{
var checkBox = sender as CheckBox;
SeparateChanged?.Invoke(sender, (bool)checkBox.IsChecked);
}
private void DeleteCheckBoxClick(object sender, RoutedEventArgs e)
{
var checkBox = sender as CheckBox;
DeleteChanged?.Invoke(sender, (bool)checkBox.IsChecked);
}
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
var textBox = sender as TextBox;
CustomPageRangeChanged?.Invoke(sender, textBox.Text);
}
private void ExtractButton_Click(object sender, RoutedEventArgs e)
{
ExtractEvent?.Invoke(null, EventArgs.Empty);
}
private void CancelButton_Click(object sender, RoutedEventArgs e)
{
CancelEvent?.Invoke(null, EventArgs.Empty);
}
}
public enum PageRange
{
AllPages = 1,
OddPages,
EvenPages,
CustomPages
}
}