using compdfkit_tools.Common;
using ComPDFKitViewer.PdfViewer;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
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
{
///
/// PDFScalingControl.xaml 的交互逻辑
///
public partial class CPDFScalingUI : UserControl, INotifyPropertyChanged
{
public CPDFViewer PDFView { get; set; }
private int _scale = 100;
public int Scale
{
get { return _scale; }
set
{
if (_scale != value)
{
_scale = value;
OnPropertyChanged(nameof(Scale));
}
}
}
public event EventHandler SetScaleEvent;
public event EventHandler SetPresetScaleEvent;
public event EventHandler ScaleIncreaseEvent;
public event EventHandler ScaleDecreaseEvent;
public CPDFScalingUI()
{
InitializeComponent();
DataContext = this;
DropDownNumberBoxControl.InputEnterEvent += DropDownNumberBoxControl_InputEnterEvent;
DropDownNumberBoxControl.SetPresetEvent += DropDownNumberBoxControl_SetPresetEvent;
InitPresetNumberArray();
}
private void DropDownNumberBoxControl_SetPresetEvent(object sender, string e)
{
SetPresetScaleEvent?.Invoke(this, e);
}
public void InitPresetNumberArray()
{
List list = new List();
list.Add(25);
list.Add(50);
list.Add(100);
list.Add(200);
list.Add(400);
list.Add(800);
list.Add(1600);
DropDownNumberBoxControl.InitPresetNumberArray(list);
}
private void DropDownNumberBoxControl_InputEnterEvent(object sender, string e)
{
SetScaleEvent?.Invoke(this,e);
}
private void ScaleDecreaseButton_Click(object sender, RoutedEventArgs e)
{
ScaleDecreaseEvent?.Invoke(this,e);
}
private void ScaleIncreaseButton_Click(object sender, RoutedEventArgs e)
{
ScaleIncreaseEvent?.Invoke(this,e);
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
}