|
@@ -210,6 +210,9 @@ namespace PDF_Master.ViewModels
|
|
|
public CPDFViewer PDFViewer { get; set; }
|
|
|
public bool ReadModeIsShowProperty { get; set; } = false;
|
|
|
public MainContentViewModel mainViewModel { get; set; }
|
|
|
+
|
|
|
+ public BottomToolContentViewModel bottom { get; set; }
|
|
|
+
|
|
|
public bool IsSettingOut = false;
|
|
|
public IRegionManager region;
|
|
|
|
|
@@ -774,6 +777,39 @@ namespace PDF_Master.ViewModels
|
|
|
|
|
|
public DelegateCommand<object> OpenPropertyCommand { get; set; }
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 用于底部工具栏的部分Bug
|
|
|
+ /// </summary>
|
|
|
+ public DelegateCommand RealSizeCommand { get; set; }
|
|
|
+
|
|
|
+ public DelegateCommand OpenFullCommand { get; set; }
|
|
|
+
|
|
|
+ public DelegateCommand SinglePageCommand { get; set; }
|
|
|
+
|
|
|
+ public DelegateCommand DoublePageCommand { get; set; }
|
|
|
+
|
|
|
+ public DelegateCommand FirstPageCommand { get; set; }
|
|
|
+
|
|
|
+ public DelegateCommand LastPageCommand { get; set; }
|
|
|
+
|
|
|
+ public DelegateCommand UpCommand { get; set; }
|
|
|
+
|
|
|
+ public DelegateCommand DownCommand { get; set; }
|
|
|
+
|
|
|
+
|
|
|
+ public DelegateCommand PrePageCommand { get; set; }
|
|
|
+
|
|
|
+ public DelegateCommand NextPageCommmand { get; set; }
|
|
|
+
|
|
|
+ public DelegateCommand PreViewCommand { get; set; }
|
|
|
+
|
|
|
+ public DelegateCommand NextViewCommand { get; set; }
|
|
|
+
|
|
|
+ public DelegateCommand ZoomInCommand { get; set; }
|
|
|
+
|
|
|
+ public DelegateCommand ZoomOutCommand { get; set; }
|
|
|
+
|
|
|
+
|
|
|
#endregion 命令
|
|
|
|
|
|
public ViewContentViewModel(IRegionManager regionManager, IDialogService dialogService, IEventAggregator eventAggregator)
|
|
@@ -821,6 +857,22 @@ namespace PDF_Master.ViewModels
|
|
|
SettingsCommand = new DelegateCommand(SettingsEvent);
|
|
|
CreateLinkCommand = new DelegateCommand<object>(CreateLinkEvent);
|
|
|
ClosePropertyCommand = new DelegateCommand(CloseProperty);
|
|
|
+ //底部工具栏相关的命令 绑在这一层响应更快
|
|
|
+ RealSizeCommand = new DelegateCommand(realsize);
|
|
|
+ OpenFullCommand = new DelegateCommand(OpenFullWindow);
|
|
|
+ FirstPageCommand = new DelegateCommand(firstpage);
|
|
|
+ LastPageCommand = new DelegateCommand(lastpage);
|
|
|
+ PreViewCommand = new DelegateCommand(preview);
|
|
|
+ NextViewCommand = new DelegateCommand(nextview);
|
|
|
+ PrePageCommand = new DelegateCommand(prepage);
|
|
|
+ NextPageCommmand = new DelegateCommand(nextpage);
|
|
|
+ ZoomInCommand = new DelegateCommand(zoomin);
|
|
|
+ ZoomOutCommand = new DelegateCommand(zoomout);
|
|
|
+ UpCommand = new DelegateCommand(up);
|
|
|
+ DownCommand = new DelegateCommand(down);
|
|
|
+ SinglePageCommand = new DelegateCommand(singlepage);
|
|
|
+ DoublePageCommand = new DelegateCommand(doublepage);
|
|
|
+
|
|
|
//未显示时无法注册上Region名称
|
|
|
ToolContentVisible = Visibility.Visible;
|
|
|
ToolsBarContentVisible = Visibility.Visible;
|
|
@@ -854,6 +906,76 @@ namespace PDF_Master.ViewModels
|
|
|
StartAutoSave();
|
|
|
}
|
|
|
|
|
|
+ private void doublepage()
|
|
|
+ {
|
|
|
+ bottom?.DoublePageCommand.Execute();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void singlepage()
|
|
|
+ {
|
|
|
+ bottom?.SinglePageCommand.Execute();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void down()
|
|
|
+ {
|
|
|
+ bottom?.DownCommand.Execute();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void up()
|
|
|
+ {
|
|
|
+ bottom?.UpCommand.Execute();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void zoomin()
|
|
|
+ {
|
|
|
+ bottom?.ZoomInCommand.Execute();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void zoomout()
|
|
|
+ {
|
|
|
+ bottom?.ZoomOutCommand.Execute();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void nextpage()
|
|
|
+ {
|
|
|
+ bottom?.NextPageCommand.Execute();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void prepage()
|
|
|
+ {
|
|
|
+ bottom?.PrePageCommand.Execute();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void nextview()
|
|
|
+ {
|
|
|
+
|
|
|
+ bottom?.NextViewCommnad.Execute();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void preview()
|
|
|
+ {
|
|
|
+ bottom?.PreViewCommand.Execute();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void lastpage()
|
|
|
+ {
|
|
|
+ bottom?.LastPageCommand.Execute();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void firstpage()
|
|
|
+ {
|
|
|
+ bottom?.FirstPageCommand.Execute();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 底部工具栏的缩放至实际大小
|
|
|
+ /// </summary>
|
|
|
+ private void realsize()
|
|
|
+ {
|
|
|
+ bottom?.RealSizeCommand.Execute();
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 进入全屏模式
|
|
|
/// </summary>
|
|
@@ -2245,6 +2367,8 @@ namespace PDF_Master.ViewModels
|
|
|
parameters.Add(ParameterNames.ViewContentViewModel, this);
|
|
|
region.RequestNavigate(BottomToolRegionName, "BottomToolContent", parameters);
|
|
|
}
|
|
|
+ PDFViewer.SnapsToDevicePixels = true;
|
|
|
+ PDFViewer.UseLayoutRounding = true;
|
|
|
region.AddToRegion(ViwerRegionName, PDFViewer);
|
|
|
|
|
|
if (App.mainWindowViewModel != null)
|
|
@@ -2369,11 +2493,11 @@ namespace PDF_Master.ViewModels
|
|
|
/// <summary>
|
|
|
/// 已有路径文档的保存逻辑
|
|
|
/// </summary>
|
|
|
- public bool saveFile(bool autosave=false)
|
|
|
+ public bool saveFile(bool autosave = false)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- if ((string.IsNullOrEmpty(PDFViewer.Document.FilePath) || mainViewModel.NewFile)&&!autosave)
|
|
|
+ if ((string.IsNullOrEmpty(PDFViewer.Document.FilePath) || mainViewModel.NewFile) && !autosave)
|
|
|
return saveAsFile();
|
|
|
|
|
|
//文档已被修复时 提示另存为
|
|
@@ -2525,7 +2649,7 @@ namespace PDF_Master.ViewModels
|
|
|
OpenFileInfo info = SettingHelper.GetFileInfo(PDFViewer.Document.FilePath);
|
|
|
try
|
|
|
{
|
|
|
- if (info!=null&&!string.IsNullOrEmpty(info.ThumbImgPath) && !PDFViewer.Document.IsEncrypted)//加密的文档不获取缩略图
|
|
|
+ if (info != null && !string.IsNullOrEmpty(info.ThumbImgPath) && !PDFViewer.Document.IsEncrypted)//加密的文档不获取缩略图
|
|
|
{
|
|
|
var size = PDFViewer.Document.GetPageSize(0);
|
|
|
System.Drawing.Bitmap bitmap = ToolMethod.RenderPageBitmapNoWait(PDFViewer.Document, (int)size.Width, (int)size.Height, 0, true, true);
|
|
@@ -2569,12 +2693,10 @@ namespace PDF_Master.ViewModels
|
|
|
//弹窗前 激活主窗体
|
|
|
//App.Current.MainWindow.Activate();
|
|
|
AlertsMessage alertsMessage = new AlertsMessage();
|
|
|
- System.Windows.Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() =>
|
|
|
- {
|
|
|
-
|
|
|
- //文件被占用 保存失败时
|
|
|
- alertsMessage.ShowDialog("", App.MainPageLoader.GetString("Main_TheFileOccupiedWarning"), App.ServiceLoader.GetString("Text_cancel"), App.ServiceLoader.GetString("Text_ok"));
|
|
|
- }));
|
|
|
+ //文件被占用 保存失败时
|
|
|
+ alertsMessage.ShowDialog("", App.MainPageLoader.GetString("Main_TheFileOccupiedWarning"), App.ServiceLoader.GetString("Text_cancel"), App.ServiceLoader.GetString("Text_ok"));
|
|
|
+ //显示当前窗体,防止窗口置底
|
|
|
+ App.Current.MainWindow.Activate();
|
|
|
if (alertsMessage.result == ContentResult.Ok)
|
|
|
return saveAsFile();
|
|
|
else
|