using ComPDFKitViewer.PdfViewer; 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; using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel; namespace Compdfkit_Tools.Measure { /// /// MeasureSettingPanel.xaml 的交互逻辑 /// public partial class MeasureSettingPanel : UserControl { public event EventHandler CancelEvent; public event EventHandler DoneEvent; public bool ReturnToInfoPanel { get; set; } public MeasureSettingPanel() { InitializeComponent(); } private void ButtonCancel_Click(object sender, RoutedEventArgs e) { CancelEvent?.Invoke(this, e); ReturnToInfoPanel = false; } private void ButtonDone_Click(object sender, RoutedEventArgs e) { SaveMeasureSetting(); DoneEvent?.Invoke(this, e); ReturnToInfoPanel = false; } private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e) { List allowKeys = new List() { Key.Delete, Key.Back, Key.Enter, Key.NumPad0, Key.NumPad1, Key.NumPad2, Key.NumPad3, Key.NumPad4, Key.NumPad5, Key.NumPad6, Key.NumPad7, Key.NumPad8, Key.NumPad9, Key.D0, Key.D1, Key.D2, Key.D3, Key.D4, Key.D5, Key.D6, Key.D7, Key.D8, Key.D9, Key.Left, Key.Right, Key.OemPeriod,Key.Decimal }; if (allowKeys.Contains(e.Key) == false) { e.Handled = true; } } private void TextBox_CanExecute(object sender, CanExecuteRoutedEventArgs e) { try { if (e.Command == ApplicationCommands.Paste && Clipboard.ContainsText()) { string checkText = Clipboard.GetText(); if (int.TryParse(checkText, out int value)) { e.CanExecute = true; } e.Handled = true; } } catch (Exception ex) { } } public void BindMeasureSetting() { RulerBaseText.Text=MeasureSetting.RulerBase.ToString(); RulerTranslateText.Text=MeasureSetting.RulerTranslate.ToString(); RulerTranslateCombo.SelectedIndex = -1; RulerBaseUnitCombo.SelectedIndex = -1; PrecisionBox.SelectedIndex = -1; if (MeasureSetting.RulerBaseUnit=="in") { RulerBaseUnitCombo.SelectedIndex = 0; } if (MeasureSetting.RulerBaseUnit == "cm") { RulerBaseUnitCombo.SelectedIndex = 1; } if (MeasureSetting.RulerBaseUnit == "mm") { RulerBaseUnitCombo.SelectedIndex = 2; } for(int i=0;i< RulerTranslateCombo.Items.Count;i++) { ComboBoxItem checkItem= RulerTranslateCombo.Items[i] as ComboBoxItem; if(checkItem!=null && checkItem.Content.ToString()==MeasureSetting.RulerTranslateUnit.ToString()) { RulerTranslateCombo.SelectedIndex = i; } } for (int i = 0; i < PrecisionBox.Items.Count; i++) { ComboBoxItem checkItem = PrecisionBox.Items[i] as ComboBoxItem; if (checkItem != null && checkItem.Content.ToString() == MeasureSetting.Precision.ToString()) { PrecisionBox.SelectedIndex = i; } } } private void SaveMeasureSetting() { if(double.TryParse(RulerBaseText.Text,out double ruleBase)) { MeasureSetting.RulerBase = ruleBase; } if(RulerBaseUnitCombo.SelectedItem!=null) { ComboBoxItem checkItem = RulerBaseUnitCombo.SelectedItem as ComboBoxItem; MeasureSetting.RulerBaseUnit= checkItem.Content.ToString(); } if (double.TryParse(RulerTranslateText.Text, out double ruletranBase)) { MeasureSetting.RulerTranslate = ruletranBase; } if (RulerTranslateCombo.SelectedItem != null) { ComboBoxItem checkItem = RulerTranslateCombo.SelectedItem as ComboBoxItem; MeasureSetting.RulerTranslateUnit = checkItem.Content.ToString(); } if (PrecisionBox.SelectedValue!=null) { ComboBoxItem checkItem = PrecisionBox.SelectedValue as ComboBoxItem; if (double.TryParse(checkItem.Content.ToString(), out double precision)) { MeasureSetting.Precision = precision; } } } } }