|
@@ -15,13 +15,12 @@ using System.Windows.Controls;
|
|
|
using Prism.Services.Dialogs;
|
|
|
using PDF_Office.CustomControl;
|
|
|
using PDF_Office.Model;
|
|
|
-using System.Drawing;
|
|
|
-using PDF_Office.Views.PropertyPanel;
|
|
|
|
|
|
namespace PDF_Office.ViewModels
|
|
|
{
|
|
|
- public class BottomToolContentViewModel : BindableBase
|
|
|
+ public class BottomToolContentViewModel : BindableBase, INavigationAware
|
|
|
{
|
|
|
+
|
|
|
public DelegateCommand Load { get; set; }
|
|
|
|
|
|
public DelegateCommand FirstPageCommand { get; set; }
|
|
@@ -54,8 +53,6 @@ namespace PDF_Office.ViewModels
|
|
|
|
|
|
public DelegateCommand<object> SelectionChangedCommand { get; set; }
|
|
|
|
|
|
- public DelegateCommand<object> ShowViewModularCommand { get; set; }
|
|
|
-
|
|
|
private bool isSingleView;
|
|
|
|
|
|
public bool IsSingleView
|
|
@@ -154,39 +151,33 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
public CPDFViewer PDFViewer { get; set; }
|
|
|
|
|
|
- private ViewContentViewModel viewContentViewModel;
|
|
|
+ private ViewContentViewModel viewContentViewModel { get; set; }
|
|
|
+
|
|
|
+
|
|
|
private IRegionManager region;
|
|
|
|
|
|
private IDialogService dialogs;
|
|
|
|
|
|
- public BottomToolContentViewModel(IRegionManager regionManager, IDialogService dialogService)
|
|
|
+ public BottomToolContentViewModel(IRegionManager regionManager,IDialogService dialogService)
|
|
|
{
|
|
|
region = regionManager;
|
|
|
dialogs = dialogService;
|
|
|
|
|
|
- Load = new DelegateCommand(LoadControl);
|
|
|
-
|
|
|
PrePageCommand = new DelegateCommand(GoPrePage, CanPrePageExcute).ObservesProperty(() => CurrentPage);
|
|
|
NextPageCommand = new DelegateCommand(GoNextPage, CanNextPageExcute).ObservesProperty(() => CurrentPage);
|
|
|
FirstPageCommand = new DelegateCommand(GoFirstPage, CanPrePageExcute).ObservesProperty(() => CurrentPage);
|
|
|
LastPageCommand = new DelegateCommand(GoLastPage, CanNextPageExcute).ObservesProperty(() => CurrentPage);
|
|
|
- ZoomInCommand = new DelegateCommand(ZoomIn, CanZoomIn).ObservesProperty(() => CurrentZoom);
|
|
|
- ZoomOutCommand = new DelegateCommand(ZoomOut, CanZoomOut).ObservesProperty(() => CurrentZoom);
|
|
|
+ ZoomInCommand = new DelegateCommand(ZoomIn, CanZoomIn).ObservesProperty(()=>CurrentZoom);
|
|
|
+ ZoomOutCommand = new DelegateCommand(ZoomOut, CanZoomOut).ObservesProperty(()=>CurrentZoom);
|
|
|
SetViewModeCommand = new DelegateCommand(SetModeView);
|
|
|
PageTextKeyDownCommand = new DelegateCommand<object>(PageNumText_KeyDown);
|
|
|
PageTextPreviewKeyDownCommand = new DelegateCommand<object>(PageNumText_PreviewKeyDown);
|
|
|
SelectionChangedCommand = new DelegateCommand<object>(SelectionChangedEvent);
|
|
|
OpenFullCommand = new DelegateCommand(OpenFullWindow);
|
|
|
- ShowViewModularCommand = new DelegateCommand<object>(ShowViewModularEvent);
|
|
|
- }
|
|
|
-
|
|
|
- private void ShowViewModularEvent(object obj)
|
|
|
- {
|
|
|
- NavigationParameters param = new NavigationParameters();
|
|
|
- param.Add(ParameterNames.PDFViewer, PDFViewer);
|
|
|
- region.RequestNavigate(RegionNames.PropertyRegionName, "ViewModularContent", param);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -196,15 +187,14 @@ namespace PDF_Office.ViewModels
|
|
|
{
|
|
|
DialogParameters parameters = new DialogParameters();
|
|
|
//因为全屏模式可能需要设置特定的页面模式,所以只传文件路径,新建一个PDFview对象
|
|
|
- parameters.Add(ParameterNames.FilePath, PDFViewer.Document.FilePath);
|
|
|
- parameters.Add(ParameterNames.PassWord, PDFViewer.Tag == null ? "" : PDFViewer.Tag.ToString());
|
|
|
- dialogs.ShowDialog(DialogNames.FullScreenDialog, parameters, e =>
|
|
|
- {
|
|
|
- if (e.Result == ButtonResult.Cancel)
|
|
|
+ parameters.Add(ParameterNames.FilePath,PDFViewer.Document.FilePath);
|
|
|
+ parameters.Add(ParameterNames.PassWord,PDFViewer.Tag==null?"":PDFViewer.Tag.ToString());
|
|
|
+ dialogs.ShowDialog(DialogNames.FullScreenDialog,parameters,e=> {
|
|
|
+ if(e.Result==ButtonResult.Cancel)
|
|
|
{
|
|
|
//TODO:弹窗提示打开全屏模式失败
|
|
|
AlertsMessage alertsMessage = new AlertsMessage();
|
|
|
- alertsMessage.ShowDialog("", "Error", "OK");
|
|
|
+ alertsMessage.ShowDialog("","Error","OK");
|
|
|
return;
|
|
|
}
|
|
|
});
|
|
@@ -213,24 +203,21 @@ namespace PDF_Office.ViewModels
|
|
|
private void SelectionChangedEvent(object e)
|
|
|
{
|
|
|
var args = e as SelectionChangedEventArgs;
|
|
|
- if (args != null)
|
|
|
+ if(args!=null)
|
|
|
{
|
|
|
- if (SelectedIndex <= 2)
|
|
|
+ if(SelectedIndex<=2)
|
|
|
{
|
|
|
switch (SelectedIndex)
|
|
|
{
|
|
|
case 0:
|
|
|
PDFViewer.ChangeFitMode(FitMode.FitSize);
|
|
|
break;
|
|
|
-
|
|
|
case 1:
|
|
|
PDFViewer.ChangeFitMode(FitMode.FitWidth);
|
|
|
break;
|
|
|
-
|
|
|
case 2:
|
|
|
PDFViewer.ChangeFitMode(FitMode.FitHeight);
|
|
|
break;
|
|
|
-
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
@@ -245,13 +232,14 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private void PageNumText_PreviewKeyDown(object e)
|
|
|
{
|
|
|
var args = e as KeyEventArgs;
|
|
|
- if (args != null)
|
|
|
+ if(args != null)
|
|
|
{
|
|
|
//显示文本框输入内容
|
|
|
List<Key> NumberKeys = new List<Key>() { Key.D0,Key.D1,Key.D2,Key.D3,Key.D4,Key.D5,Key.D6,Key.D7,Key.D8,Key.D9,Key.NumPad0,Key.NumPad1,Key.NumPad2,
|
|
@@ -314,12 +302,13 @@ namespace PDF_Office.ViewModels
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
private void GoNextPage()
|
|
|
{
|
|
|
if (PDFViewer != null)
|
|
|
{
|
|
|
PDFViewer.GoToPage(PDFViewer.CurrentIndex + 1);
|
|
|
- if (((int)PDFViewer.Mode % 2) == 0)
|
|
|
+ if(((int)PDFViewer.Mode%2)==0)
|
|
|
{
|
|
|
PDFViewer.GoToPage(PDFViewer.CurrentIndex + 2);
|
|
|
}
|
|
@@ -356,7 +345,7 @@ namespace PDF_Office.ViewModels
|
|
|
|
|
|
private void ZoomIn()
|
|
|
{
|
|
|
- var zoom = PDFViewer.ZoomFactor * 100;
|
|
|
+ var zoom = PDFViewer.ZoomFactor*100;
|
|
|
if (zoom >= 1 && zoom <= 100)
|
|
|
{
|
|
|
PDFViewer.Zoom((zoom + 5) / 100.0);
|
|
@@ -373,10 +362,10 @@ namespace PDF_Office.ViewModels
|
|
|
|
|
|
private void ZoomOut()
|
|
|
{
|
|
|
- var zoom = PDFViewer.ZoomFactor * 100;
|
|
|
+ var zoom = PDFViewer.ZoomFactor*100;
|
|
|
if (zoom >= 1 && zoom <= 100)
|
|
|
{
|
|
|
- PDFViewer.Zoom((zoom - 5) / 100.0);
|
|
|
+ PDFViewer.Zoom((zoom - 5)/100.0);
|
|
|
}
|
|
|
else if (zoom <= 500)
|
|
|
{
|
|
@@ -392,7 +381,7 @@ namespace PDF_Office.ViewModels
|
|
|
{
|
|
|
if (PDFViewer != null)
|
|
|
{
|
|
|
- if (PDFViewer.ZoomFactor * 100 >= 1000)
|
|
|
+ if (PDFViewer.ZoomFactor*100 >=1000)
|
|
|
return false;
|
|
|
else
|
|
|
return true;
|
|
@@ -404,7 +393,7 @@ namespace PDF_Office.ViewModels
|
|
|
{
|
|
|
if (PDFViewer != null)
|
|
|
{
|
|
|
- if (PDFViewer.ZoomFactor * 100 <= 1)
|
|
|
+ if (PDFViewer.ZoomFactor*100 <=1)
|
|
|
return false;
|
|
|
else
|
|
|
return true;
|
|
@@ -412,23 +401,6 @@ namespace PDF_Office.ViewModels
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- private void LoadControl()
|
|
|
- {
|
|
|
- if (App.mainWindowViewModel.CurrentPDFViewer != null)
|
|
|
- {
|
|
|
- PDFViewer = App.mainWindowViewModel.CurrentPDFViewer;
|
|
|
- if (PDFViewer != null)
|
|
|
- {
|
|
|
- //获取页面设置等信息
|
|
|
- PageCount = PDFViewer.Document.PageCount;
|
|
|
- GetModeView(PDFViewer.ModeView);
|
|
|
- CurrentPage = PDFViewer.CurrentIndex + 1;
|
|
|
- CurrentZoom = PDFViewer.ZoomFactor * 100;
|
|
|
- PDFViewer.InfoChanged += PDFViewer_InfoChanged;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
private void PDFViewer_InfoChanged(object sender, KeyValuePair<string, object> e)
|
|
|
{
|
|
|
if (e.Key == "PageNum")
|
|
@@ -440,9 +412,9 @@ namespace PDF_Office.ViewModels
|
|
|
{
|
|
|
GetModeView((ViewMode)e.Value);
|
|
|
}
|
|
|
- if (e.Key == "Zoom")
|
|
|
+ if(e.Key=="Zoom")
|
|
|
{
|
|
|
- CurrentZoom = (double)e.Value * 100;
|
|
|
+ CurrentZoom = (double)e.Value*100;
|
|
|
SelectedIndex = -1;
|
|
|
}
|
|
|
}
|
|
@@ -451,10 +423,11 @@ namespace PDF_Office.ViewModels
|
|
|
{
|
|
|
if ((int)mode % 2 == 0)
|
|
|
{
|
|
|
- if (!IsContinue)
|
|
|
+ if(!IsContinue)
|
|
|
{
|
|
|
IsContinue = true;
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -466,21 +439,21 @@ namespace PDF_Office.ViewModels
|
|
|
|
|
|
if ((int)mode <= 2)
|
|
|
{
|
|
|
- if (!isSingleView)
|
|
|
+ if(!isSingleView)
|
|
|
{
|
|
|
IsSingleView = true;
|
|
|
}
|
|
|
}
|
|
|
else if ((int)mode <= 4)
|
|
|
{
|
|
|
- if (!isDoubleView)
|
|
|
+ if(!isDoubleView)
|
|
|
{
|
|
|
IsDoubleView = true;
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- if (!isBookMode)
|
|
|
+ if(!isBookMode)
|
|
|
{
|
|
|
IsBookMode = true;
|
|
|
}
|
|
@@ -523,5 +496,38 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ #region Navigation
|
|
|
+ public void OnNavigatedTo(NavigationContext navigationContext)
|
|
|
+ {
|
|
|
+ var viewContentViewModel = navigationContext.Parameters[ParameterNames.ViewContentViewModel] as ViewContentViewModel;
|
|
|
+ if (viewContentViewModel != null)
|
|
|
+ {
|
|
|
+ this.viewContentViewModel = viewContentViewModel;
|
|
|
+ }
|
|
|
+
|
|
|
+ var pdfview = navigationContext.Parameters[ParameterNames.PDFViewer] as CPDFViewer;
|
|
|
+ if(pdfview!=null)
|
|
|
+ {
|
|
|
+ //获取页面设置等信息
|
|
|
+ PDFViewer = pdfview;
|
|
|
+ PageCount = PDFViewer.Document.PageCount;
|
|
|
+ GetModeView(PDFViewer.ModeView);
|
|
|
+ CurrentPage = PDFViewer.CurrentIndex + 1;
|
|
|
+ CurrentZoom = PDFViewer.ZoomFactor * 100;
|
|
|
+ PDFViewer.InfoChanged += PDFViewer_InfoChanged;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public bool IsNavigationTarget(NavigationContext navigationContext)
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void OnNavigatedFrom(NavigationContext navigationContext)
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
}
|
|
|
-}
|
|
|
+}
|