using Compdfkit_Tools.Helper; using Compdfkit_Tools.PDFControl; using ComPDFKitViewer.PdfViewer; using System; using System.Collections.Generic; using System.ComponentModel; 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.Measure { /// /// MeasureControl.xaml 的交互逻辑 /// public partial class MeasureControl : UserControl { public MeasurePropertyControl measurePropertyControl = new MeasurePropertyControl(); private CPDFDisplaySettingsControl displaySettingsControl; private PDFViewControl PdfViewControl = new PDFViewControl(); private PanelState panelState = PanelState.GetInstance(); public MeasureControl() { InitializeComponent(); } #region Init PDFViewer public void InitWithPDFViewer(PDFViewControl pdfViewControl, CPDFViewer pdfViewer) { PdfViewControl=pdfViewControl; PdfViewControl.PDFView = pdfViewer; PDFMeasureTool.InitWithPDFViewer(pdfViewer, measurePropertyControl); FloatPageTool.InitWithPDFViewer(pdfViewer); PDFGrid.Child = PdfViewControl; panelState.PropertyChanged += PanelState_PropertyChanged; } public void SetSettingsControl(CPDFDisplaySettingsControl cPDFDisplaySettingsControl) { displaySettingsControl = cPDFDisplaySettingsControl; } public void ClearAllToolState() { PDFMeasureTool.ClearAllToolState(); } public void ClearViewerControl() { PDFGrid.Child = null; BotaContainer.Child = null; PropertyContainer.Child = null; displaySettingsControl=null; } private void PanelState_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == nameof(PanelState.IsLeftPanelExpand)) { ExpandLeftPanel(panelState.IsLeftPanelExpand); } else if (e.PropertyName == nameof(PanelState.RightPanel)) { if (panelState.RightPanel == PanelState.RightPanelState.PropertyPanel) { ExpandRightPropertyPanel(measurePropertyControl, Visibility.Visible); } else if (panelState.RightPanel == PanelState.RightPanelState.ViewSettings) { ExpandRightPropertyPanel(displaySettingsControl, Visibility.Visible); } else { ExpandRightPropertyPanel(null, Visibility.Collapsed); } } } #endregion #region Expand and collapse Panel public void ExpandRightPropertyPanel(Visibility visible) { ExpandRightPropertyPanel(measurePropertyControl, visible); } public void ExpandNullRightPropertyPanel(Visibility visible) { ExpandRightPropertyPanel(null, visible); } public void ExpandViewSettings(Visibility visible) { SetViewSettings(displaySettingsControl, visible); } private void ExpandRightPropertyPanel(UIElement propertytPanel, Visibility visible) { PropertyContainer.Width = 260; PropertyContainer.Child = propertytPanel; PropertyContainer.Visibility = visible; } private void SetViewSettings(CPDFDisplaySettingsControl displaySettingsControl,Visibility visibility) { PropertyContainer.Child = displaySettingsControl; PropertyContainer.Visibility = visibility; } public void ExpandLeftPanel(bool isExpand) { BotaContainer.Visibility = isExpand ? Visibility.Visible : Visibility.Collapsed; Splitter.Visibility = isExpand ? Visibility.Visible : Visibility.Collapsed; if (isExpand) { BodyGrid.ColumnDefinitions[0].Width = new GridLength(320); BodyGrid.ColumnDefinitions[1].Width = new GridLength(15); } else { BodyGrid.ColumnDefinitions[0].Width = new GridLength(0); BodyGrid.ColumnDefinitions[1].Width = new GridLength(0); } } #endregion private void UserControl_Loaded(object sender, RoutedEventArgs e) { } } }