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)); } } }