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