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