using ComPDFKitViewer; using ComPDFKitViewer.AnnotEvent; using ComPDFKitViewer.PdfViewer; using PDF_Office.Model; using Prism.Commands; using Prism.Mvvm; using Prism.Regions; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; namespace PDF_Office.ViewModels.Form { public class FormsToolContentViewModel : BindableBase, INavigationAware { private CPDFViewer PDFViewer; public ViewContentViewModel viewContentViewModel; private IRegionManager regions; /// /// 按钮和属性面板键值对 /// private Dictionary btnToProperty = new Dictionary(); private Visibility showPreView; /// /// 显示PreView按钮 /// public Visibility ShowPreView { get { return showPreView; } set { SetProperty(ref showPreView, value); } } public DelegateCommand CheckedCommand { get; set; } public FormsToolContentViewModel(IRegionManager regionManager) { regions = regionManager; CheckedCommand = new DelegateCommand(CheckedEvent); InitBtnToProperty(); } private void InitBtnToProperty() { btnToProperty.Add("Text", "TextFieldProperty"); btnToProperty.Add("CheckBox", "CheckBoxProperty"); btnToProperty.Add("RadioButton", "RadioButtonProperty"); btnToProperty.Add("ListBox", "ListBoxProperty"); btnToProperty.Add("Combox", "ComboxProperty"); btnToProperty.Add("Button", "ButtonProperty"); btnToProperty.Add("Sign", "SignProperty"); } /// /// Form /// /// private void CheckedEvent(string type) { AddToPropertyPanel(type); } private void AddToPropertyPanel(string type, WidgetArgs widget = null) { if (btnToProperty.ContainsKey(type)) { NavigationParameters parameters = new NavigationParameters(); parameters.Add(ParameterNames.PDFViewer, PDFViewer); parameters.Add("WidgetArgs", widget); regions.RequestNavigate(RegionNames.PropertyRegionName, btnToProperty[type], parameters); ShowPropertyPanel(true); } } #region 获取Form private void GetTextField() { } private void GetButton() { } private void GeCheckBox() { } private void GetCombox() { } private void GetListBox() { } private void GetRadioButton() { } private void GetSign() { } #endregion private void ShowPropertyPanel(bool show = true) { viewContentViewModel.IsPropertyOpen = show; } #region 表单内部触发的事件(比如选中表单行为等) private void PDFViewer_WidgetClickHander(object sender, WidgetArgs e) { } #endregion #region Navegation public bool IsNavigationTarget(NavigationContext navigationContext) { return true; } public void OnNavigatedFrom(NavigationContext navigationContext) { } public void OnNavigatedTo(NavigationContext navigationContext) { navigationContext.Parameters.TryGetValue(ParameterNames.ViewContentViewModel,out viewContentViewModel); navigationContext.Parameters.TryGetValue(ParameterNames.PDFViewer, out PDFViewer); BindingFormHandler(); } private void BindingFormHandler() { if(PDFViewer != null) { PDFViewer.WidgetClickHander -= PDFViewer_WidgetClickHander; PDFViewer.WidgetClickHander += PDFViewer_WidgetClickHander; } } #endregion } }