|
@@ -1,4 +1,5 @@
|
|
-using PDF_Office.Model;
|
|
|
|
|
|
+using PDF_Office.Helper;
|
|
|
|
+using PDF_Office.Model;
|
|
using PDF_Office.Model.PageEdit;
|
|
using PDF_Office.Model.PageEdit;
|
|
using Prism.Commands;
|
|
using Prism.Commands;
|
|
using Prism.Mvvm;
|
|
using Prism.Mvvm;
|
|
@@ -15,7 +16,7 @@ namespace PDF_Office.ViewModels.Dialog.PageEditDialogs
|
|
{
|
|
{
|
|
public class InsertDialogViewModel : BindableBase, IDialogAware
|
|
public class InsertDialogViewModel : BindableBase, IDialogAware
|
|
{
|
|
{
|
|
- public string Title =>"";
|
|
|
|
|
|
+ public string Title => "";
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 数据模型
|
|
/// 数据模型
|
|
@@ -24,6 +25,8 @@ namespace PDF_Office.ViewModels.Dialog.PageEditDialogs
|
|
|
|
|
|
public event Action<IDialogResult> RequestClose;
|
|
public event Action<IDialogResult> RequestClose;
|
|
|
|
|
|
|
|
+ private Size size = new Size();
|
|
|
|
+
|
|
private string currentPageSize;
|
|
private string currentPageSize;
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
@@ -49,7 +52,7 @@ namespace PDF_Office.ViewModels.Dialog.PageEditDialogs
|
|
set
|
|
set
|
|
{
|
|
{
|
|
SetProperty(ref itemSelectedIndex, value);
|
|
SetProperty(ref itemSelectedIndex, value);
|
|
- if(Model!=null)
|
|
|
|
|
|
+ if (Model != null)
|
|
{
|
|
{
|
|
Model.filepath = Pages[itemSelectedIndex].FilePath;
|
|
Model.filepath = Pages[itemSelectedIndex].FilePath;
|
|
}
|
|
}
|
|
@@ -96,6 +99,75 @@ namespace PDF_Office.ViewModels.Dialog.PageEditDialogs
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private int pageSizeSelectedIndex = 0;
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 页面尺寸选中项
|
|
|
|
+ /// </summary>
|
|
|
|
+ public int PageSizeSelectedIndex
|
|
|
|
+ {
|
|
|
|
+ get { return pageSizeSelectedIndex; }
|
|
|
|
+ set
|
|
|
|
+ {
|
|
|
|
+ SetProperty(ref pageSizeSelectedIndex, value);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private bool isCurrentSelected = true;
|
|
|
|
+
|
|
|
|
+ public bool IsCurrentSelected
|
|
|
|
+ {
|
|
|
|
+ get { return isCurrentSelected; }
|
|
|
|
+ set { SetProperty(ref isCurrentSelected, value); }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private bool isStandSelcted;
|
|
|
|
+
|
|
|
|
+ public bool IsStandSelected
|
|
|
|
+ {
|
|
|
|
+ get { return isStandSelcted; }
|
|
|
|
+ set
|
|
|
|
+ {
|
|
|
|
+ SetProperty(ref isStandSelcted, value);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private bool isCustomSelected;
|
|
|
|
+
|
|
|
|
+ public bool IsCustomSelected
|
|
|
|
+ {
|
|
|
|
+ get { return isCustomSelected; }
|
|
|
|
+ set
|
|
|
|
+ {
|
|
|
|
+ SetProperty(ref isCustomSelected, value);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private bool isVerticalSelected = true;
|
|
|
|
+
|
|
|
|
+ public bool IsVerticalSelected
|
|
|
|
+ {
|
|
|
|
+ get { return isVerticalSelected; }
|
|
|
|
+ set
|
|
|
|
+ {
|
|
|
|
+ SetProperty(ref isVerticalSelected, value);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private bool isHorizontalSelected;
|
|
|
|
+
|
|
|
|
+ public bool IsHorizontalSelected
|
|
|
|
+ {
|
|
|
|
+ get { return isHorizontalSelected; }
|
|
|
|
+ set
|
|
|
|
+ {
|
|
|
|
+ SetProperty(ref isHorizontalSelected, value);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 自定义页面的路径集合
|
|
/// 自定义页面的路径集合
|
|
@@ -107,30 +179,43 @@ namespace PDF_Office.ViewModels.Dialog.PageEditDialogs
|
|
/// </summary>
|
|
/// </summary>
|
|
public List<string> Units { get; set; }
|
|
public List<string> Units { get; set; }
|
|
|
|
|
|
|
|
+ public List<string> PageSize { get; set; }
|
|
|
|
|
|
public DelegateCommand CancelCommand { get; set; }
|
|
public DelegateCommand CancelCommand { get; set; }
|
|
|
|
|
|
public DelegateCommand InsertCommnad { get; set; }
|
|
public DelegateCommand InsertCommnad { get; set; }
|
|
|
|
|
|
- /// <summary>
|
|
|
|
- /// 页面方向选择的事件
|
|
|
|
- /// </summary>
|
|
|
|
- public DelegateCommand<string> OrientationCheckedCommand { get; set; }
|
|
|
|
-
|
|
|
|
public InsertDialogViewModel()
|
|
public InsertDialogViewModel()
|
|
{
|
|
{
|
|
InitPageSource();
|
|
InitPageSource();
|
|
InitUnits();
|
|
InitUnits();
|
|
|
|
+ InitPage();
|
|
|
|
|
|
CancelCommand = new DelegateCommand(cancel);
|
|
CancelCommand = new DelegateCommand(cancel);
|
|
InsertCommnad = new DelegateCommand(insert);
|
|
InsertCommnad = new DelegateCommand(insert);
|
|
- OrientationCheckedCommand = new DelegateCommand<string>(OrientationChecked);
|
|
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void InitPage()
|
|
|
|
+ {
|
|
|
|
+ PageSize = new List<string>();
|
|
|
|
+ PageSize.Add("Letter(8.5x11 inches)");
|
|
|
|
+ PageSize.Add("Legal (210 x 297mm)");
|
|
|
|
+ PageSize.Add("A3 (297 x 420mm)");
|
|
|
|
+ PageSize.Add("A4 (210 x 297mm)");
|
|
|
|
+ PageSize.Add("A5 (148 x 210mm)");
|
|
|
|
+ PageSize.Add("B4 (250 x 353mm)");
|
|
|
|
+ PageSize.Add("B5 (176 x 250mm)");
|
|
|
|
+ PageSize.Add("Executive (7.25x10.5 inches)");
|
|
|
|
+ PageSize.Add("US4x6 (4x6 inches)");
|
|
|
|
+ PageSize.Add("US4x8 (4x8 inches)");
|
|
|
|
+ PageSize.Add("US5x7 (5x7 inches)");
|
|
|
|
+ PageSize.Add("Comm10 (4.125x9.5 inches)");
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 初始化页面大小单位集合
|
|
/// 初始化页面大小单位集合
|
|
/// </summary>
|
|
/// </summary>
|
|
- private void InitUnits()
|
|
|
|
|
|
+ private void InitUnits()
|
|
{
|
|
{
|
|
Units = new List<string>();
|
|
Units = new List<string>();
|
|
Units.Add("mm");
|
|
Units.Add("mm");
|
|
@@ -144,41 +229,12 @@ namespace PDF_Office.ViewModels.Dialog.PageEditDialogs
|
|
private void InitPageSource()
|
|
private void InitPageSource()
|
|
{
|
|
{
|
|
Pages = new ObservableCollection<CustomPageItem>();
|
|
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 = "" });
|
|
|
|
+ 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\Staff.jpg") });
|
|
Pages.Add(new CustomPageItem() { Name = "格子线", FilePath = System.IO.Path.Combine(Environment.CurrentDirectory, @"Resources\PageEdit\GridLine.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()
|
|
private void cancel()
|
|
{
|
|
{
|
|
@@ -187,7 +243,72 @@ namespace PDF_Office.ViewModels.Dialog.PageEditDialogs
|
|
|
|
|
|
private void insert()
|
|
private void insert()
|
|
{
|
|
{
|
|
|
|
+ //最后统一处理页面尺寸
|
|
|
|
+ if(IsCurrentSelected)
|
|
|
|
+ {
|
|
|
|
+ Model.width = (int)size.Width;
|
|
|
|
+ Model.height = (int)size.Height;
|
|
|
|
+ }
|
|
|
|
+ else if(IsStandSelected)
|
|
|
|
+ {
|
|
|
|
+ //TODO:
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ int width = (int)size.Width;
|
|
|
|
+ int height = (int)size.Height;
|
|
|
|
+ int.TryParse(customWidth,out width);
|
|
|
|
+ int.TryParse(customHeight,out height);
|
|
|
|
+ if(width <= 0)
|
|
|
|
+ {
|
|
|
|
+ width = (int)size.Width;
|
|
|
|
+ }
|
|
|
|
+ if(height<=0)
|
|
|
|
+ {
|
|
|
|
+ height = (int)size.Height;
|
|
|
|
+ }
|
|
|
|
+ switch (unitsSelectedIndex)
|
|
|
|
+ {
|
|
|
|
+ case 1:
|
|
|
|
+ width = width / 10;
|
|
|
|
+ height = height / 10;
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ width = (int)(width / 25.4);
|
|
|
|
+ height = (int)(height / 25.4);
|
|
|
|
+ break;
|
|
|
|
+ case 0:
|
|
|
|
+ default:
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ Model.width = width;
|
|
|
|
+ Model.height = height;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //方向处理
|
|
|
|
+ if (isVerticalSelected)
|
|
|
|
+ {
|
|
|
|
+ if (Model.height <= Model.width)
|
|
|
|
+ {
|
|
|
|
+ var temp = Model.height;
|
|
|
|
+ Model.height = Model.width;
|
|
|
|
+ Model.width = Model.height;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ if (Model.height > Model.width)
|
|
|
|
+ {
|
|
|
|
+ var temp = Model.height;
|
|
|
|
+ Model.height = Model.width;
|
|
|
|
+ Model.width = temp;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
DialogParameters valuePairs = new DialogParameters();
|
|
DialogParameters valuePairs = new DialogParameters();
|
|
|
|
+ //将mm转换成像素单位
|
|
|
|
+ Model.width = (int)CommonHelper.GetPageSizeFomrUnit(Model.width);
|
|
|
|
+ Model.height = (int)CommonHelper.GetPageSizeFomrUnit(Model.height);
|
|
valuePairs.Add(ParameterNames.DataModel, Model);
|
|
valuePairs.Add(ParameterNames.DataModel, Model);
|
|
RequestClose.Invoke(new DialogResult(ButtonResult.OK, valuePairs));
|
|
RequestClose.Invoke(new DialogResult(ButtonResult.OK, valuePairs));
|
|
}
|
|
}
|
|
@@ -201,15 +322,15 @@ namespace PDF_Office.ViewModels.Dialog.PageEditDialogs
|
|
|
|
|
|
public void OnDialogClosed()
|
|
public void OnDialogClosed()
|
|
{
|
|
{
|
|
-
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
public void OnDialogOpened(IDialogParameters parameters)
|
|
public void OnDialogOpened(IDialogParameters parameters)
|
|
{
|
|
{
|
|
- if(parameters!=null)
|
|
|
|
|
|
+ if (parameters != null)
|
|
{
|
|
{
|
|
- var size = parameters.GetValue<Size>("CurrentPageSize");
|
|
|
|
- CurrentPageSize = $"({size.Width.ToString("F2")}mm*{size.Height.ToString("F2")}mm)";
|
|
|
|
|
|
+ size = parameters.GetValue<Size>("CurrentPageSize");
|
|
|
|
+ CurrentPageSize = $"({size.Width.ToString("F0")}mm*{size.Height.ToString("F0")}mm)";
|
|
CustomWidth = size.Width.ToString("F2");
|
|
CustomWidth = size.Width.ToString("F2");
|
|
CustomHeight = size.Height.ToString("F2");
|
|
CustomHeight = size.Height.ToString("F2");
|
|
Model.width = (int)size.Width;
|
|
Model.width = (int)size.Width;
|