123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 |
- using PDF_Office.Model;
- using PDF_Office.Model.PageEdit;
- using Prism.Commands;
- using Prism.Mvvm;
- using Prism.Services.Dialogs;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- namespace PDF_Office.ViewModels.Dialog.PageEditDialogs
- {
- public class InsertDialogViewModel : BindableBase, IDialogAware
- {
- public string Title =>"";
- /// <summary>
- /// 数据模型
- /// </summary>
- private CustomInsertModel Model = new CustomInsertModel();
- public event Action<IDialogResult> RequestClose;
- private string currentPageSize;
- /// <summary>
- /// 当前页的尺寸大小 括号显示的形式
- /// </summary>
- public string CurrentPageSize
- {
- get { return currentPageSize; }
- set
- {
- SetProperty(ref currentPageSize, value);
- }
- }
- private int itemSelectedIndex = 0;
- /// <summary>
- /// 自定义页面的选中索引
- /// </summary>
- public int ItemSelectedIndex
- {
- get { return itemSelectedIndex; }
- set
- {
- SetProperty(ref itemSelectedIndex, value);
- if(Model!=null)
- {
- Model.filepath = Pages[itemSelectedIndex].FilePath;
- }
- }
- }
- private string customWidth;
- /// <summary>
- /// 自定义页面宽度
- /// </summary>
- public string CustomWidth
- {
- get { return customWidth; }
- set
- {
- SetProperty(ref customWidth, value);
- }
- }
- private string customHeight;
- /// <summary>
- /// 自定义页面高度
- /// </summary>
- public string CustomHeight
- {
- get { return customHeight; }
- set
- {
- SetProperty(ref customHeight, value);
- }
- }
- private int unitsSelectedIndex = 0;
- /// <summary>
- /// 单位下拉框的选中项索引
- /// </summary>
- public int UnitsSelectedIndex
- {
- get { return unitsSelectedIndex; }
- set
- {
- SetProperty(ref unitsSelectedIndex, value);
- }
- }
- /// <summary>
- /// 自定义页面的路径集合
- /// </summary>
- public ObservableCollection<CustomPageItem> Pages { get; set; }
- /// <summary>
- /// 页面单位集合
- /// </summary>
- public List<string> Units { get; set; }
- public DelegateCommand CancelCommand { get; set; }
- public DelegateCommand InsertCommnad { get; set; }
- /// <summary>
- /// 页面方向选择的事件
- /// </summary>
- public DelegateCommand<string> OrientationCheckedCommand { get; set; }
- public InsertDialogViewModel()
- {
- InitPageSource();
- InitUnits();
- CancelCommand = new DelegateCommand(cancel);
- InsertCommnad = new DelegateCommand(insert);
- OrientationCheckedCommand = new DelegateCommand<string>(OrientationChecked);
- }
- /// <summary>
- /// 初始化页面大小单位集合
- /// </summary>
- private void InitUnits()
- {
- Units = new List<string>();
- Units.Add("mm");
- Units.Add("cm");
- Units.Add("in");
- }
- /// <summary>
- /// 初始化自定义页面集合
- /// </summary>
- private void InitPageSource()
- {
- Pages = new ObservableCollection<CustomPageItem>();
- Pages.Add(new CustomPageItem() {Name="空白页",FilePath = ""});
- Pages.Add(new CustomPageItem() { Name="横线",FilePath= System.IO.Path.Combine(Environment.CurrentDirectory, @"Resources\PageEdit\HorizontalLine.jpg")});
- Pages.Add(new CustomPageItem() { Name = "五线谱", FilePath = System.IO.Path.Combine(Environment.CurrentDirectory, @"Resources\PageEdit\Staff.jpg") });
- Pages.Add(new CustomPageItem() { Name = "格子线", FilePath = System.IO.Path.Combine(Environment.CurrentDirectory, @"Resources\PageEdit\GridLine.jpg") });
- }
- /// <summary>
- /// 页面方向选中事件
- /// </summary>
- /// <param name="orientation"></param>
- private void OrientationChecked(string orientation)
- {
- switch (orientation)
- {
- //如果宽高不符合条件就对调宽高
- case "Vertical":
- if(Model.height<=Model.width)
- {
- var temp = Model.height;
- Model.height = Model.width;
- Model.width = Model.height;
- }
- break;
- case "Horizontal":
- if (Model.height> Model.width)
- {
- var temp = Model.height;
- Model.height = Model.width;
- Model.width = Model.height;
- }
- break;
- default:
- break;
- }
- }
- private void cancel()
- {
- RequestClose.Invoke(new DialogResult(ButtonResult.Cancel));
- }
- private void insert()
- {
- DialogParameters valuePairs = new DialogParameters();
- valuePairs.Add(ParameterNames.DataModel, Model);
- RequestClose.Invoke(new DialogResult(ButtonResult.OK, valuePairs));
- }
- #region 弹窗接口
- public bool CanCloseDialog()
- {
- return true;
- }
- public void OnDialogClosed()
- {
-
- }
- public void OnDialogOpened(IDialogParameters parameters)
- {
- if(parameters!=null)
- {
- var size = parameters.GetValue<Size>("CurrentPageSize");
- CurrentPageSize = $"({size.Width.ToString("F2")}mm*{size.Height.ToString("F2")}mm)";
- CustomWidth = size.Width.ToString("F2");
- CustomHeight = size.Height.ToString("F2");
- Model.width = (int)size.Width;
- Model.height = (int)size.Height;
- }
- }
- #endregion
- }
- }
|