Explorar el Código

阅读模式-更改后 初版

OYXH\oyxh hace 2 años
padre
commit
8973c5178d

+ 14 - 2
PDF Office/EventAggregators/SplitEvent.cs

@@ -13,10 +13,12 @@ namespace PDF_Office.EventAggregators
         /// 垂直分屏
         /// </summary>
         Vertical,
+
         /// <summary>
         /// 水平分屏
         /// </summary>
         Horizontal,
+
         /// <summary>
         /// 单屏(退出分屏)
         /// </summary>
@@ -33,7 +35,17 @@ namespace PDF_Office.EventAggregators
     /// <summary>
     /// 通知分屏的事件
     /// </summary>
-    public class SplitEvent: PubSubEvent<SplitEventArgs>
+    public class SplitEvent : PubSubEvent<SplitEventArgs>
+    {
+    }
+
+    public class ReadModeArgs
+    {
+        public string Unicode { get; set; }
+        public bool IsReadMode { get; set; }
+    }
+
+    public class ReadModeEvent : PubSubEvent<ReadModeArgs>
     {
     }
-}
+}

+ 55 - 35
PDF Office/ViewModels/ViewContentViewModel.cs

@@ -245,6 +245,7 @@ namespace PDF_Office.ViewModels
         public string TextEditContentRegionName { get; set; }
 
         public string BackgroundContentRegionName { get; set; }
+
         //若point不赋值或从列表中找不到point,系统会提供默认值为(0,0)的新point,所以改用Tuple<int,int>
         public List<Tuple<int, int>> FillAndSign = new List<Tuple<int, int>>();
 
@@ -731,6 +732,7 @@ namespace PDF_Office.ViewModels
         public DelegateCommand CreateBlankFileCommand { get; set; }
 
         public DelegateCommand ClosePropertyCommand { get; set; }
+
         #endregion 命令
 
         public ViewContentViewModel(IRegionManager regionManager, IDialogService dialogService, IEventAggregator eventAggregator)
@@ -1169,6 +1171,7 @@ namespace PDF_Office.ViewModels
                     ShowLeftTip(true);
                     region.RequestNavigate(LeftTipContentRegionName, "SetPasswordSuccessfullyTip");
                     break;
+
                 case EnumTipKind.StatusRemoveSecuritySuccessfully:
                     ShowLeftTip(false);
                     region.RequestNavigate(TipContentRegionName, "RemoveSecuritySuccessTip");
@@ -1179,6 +1182,7 @@ namespace PDF_Office.ViewModels
                     //ReadModelTip = Visibility.Collapsed;
                     TipVisible = Visibility.Collapsed;
                     break;
+
                 default: break;
             }
         }
@@ -1270,6 +1274,7 @@ namespace PDF_Office.ViewModels
             printValue.Add(ParameterNames.PrintCurrentPage, PDFViewer.CurrentIndex);
             dialogs.ShowDialog(DialogNames.HomePagePrinterDialog, printValue, e => { });
         }
+
         public void SelectClick()
         {
             if (OpenBOTA == false)
@@ -1301,10 +1306,10 @@ namespace PDF_Office.ViewModels
                         isTabItem = true;
                     }
                 }
-    
             }
             return isTabItem;
         }
+
         private void InitialregionNameByTabItem(ref Dictionary<string, string> dictionary)
         {
             dictionary.Add("TabItemPageEdit", ToolContentRegionName);
@@ -1477,23 +1482,30 @@ namespace PDF_Office.ViewModels
             IsLoading = Visibility.Visible;
             await Task.Delay(1);
             PDFViewer.SetMouseMode(MouseModes.PanTool);
-            NavigationParameters param = new NavigationParameters();
-            param.Add(ParameterNames.PDFViewer, PDFViewer);
-            param.Add(ParameterNames.ViewContentViewModel, this);
-            region.RequestNavigate(ToolContentRegionName, "ReadViewContent", param);
 
-            //ShowContent(CurrentBar, true);
-            if (GridToolRow != 0)
-            {
-                GridToolRow = 0;
-            }
+            #region 旧版本
 
-            if (GridToolRowSpan != 4)
-            {
-                GridToolRowSpan = 4;
-            }
-            //isInPageEdit = true;
-            UpdateShowContent("TabItemPageEdit");
+            //NavigationParameters param = new NavigationParameters();
+            //param.Add(ParameterNames.PDFViewer, PDFViewer);
+            //param.Add(ParameterNames.ViewContentViewModel, this);
+            //region.RequestNavigate(ToolContentRegionName, "ReadViewContent", param);
+
+            ////ShowContent(CurrentBar, true);
+            //if (GridToolRow != 0)
+            //{
+            //    GridToolRow = 0;
+            //}
+
+            //if (GridToolRowSpan != 4)
+            //{
+            //    GridToolRowSpan = 4;
+            //}
+            ////isInPageEdit = true;
+            //UpdateShowContent("TabItemPageEdit");
+
+            #endregion 旧版本
+
+            this.events.GetEvent<ReadModeEvent>().Publish(new ReadModeArgs() { Unicode = unicode, IsReadMode = true });
             IsLoading = Visibility.Collapsed;
         }
 
@@ -1508,25 +1520,32 @@ namespace PDF_Office.ViewModels
             await Task.Delay(1);
             //PDFViewer.MouseMode = MouseModes.None;
 
-            if (region.Regions.ContainsRegionWithName(ViwerRegionName))
-            {
-                if (region.Regions[ViwerRegionName].Views.Contains(PDFViewer))
-                {
-                    var contentRegion = region.Regions[ViwerRegionName];
-                    contentRegion.Remove(PDFViewer);
-                }
-                //还原背景色
-                PDFViewer.SetBackgroundBrush(new System.Windows.Media.SolidColorBrush(Settings.Default.AppProperties.InitialVIew.BackGround));
-                region.AddToRegion(ViwerRegionName, PDFViewer);
-            }
-            if (string.IsNullOrEmpty(CurrentBar) || CurrentBar.Equals("TabItemPageEdit", StringComparison.OrdinalIgnoreCase))
-            {
-                EnterSelectedBar("TabItemAnnotation");
-            }
-            else
-            {
-                EnterSelectedBar(CurrentBar);
-            }
+
+            #region 旧版本
+            //if (region.Regions.ContainsRegionWithName(ViwerRegionName))
+            //{
+            //    if (region.Regions[ViwerRegionName].Views.Contains(PDFViewer))
+            //    {
+            //        var contentRegion = region.Regions[ViwerRegionName];
+            //        contentRegion.Remove(PDFViewer);
+            //    }
+            //    //还原背景色
+            //    PDFViewer.SetBackgroundBrush(new System.Windows.Media.SolidColorBrush(Settings.Default.AppProperties.InitialVIew.BackGround));
+            //    region.AddToRegion(ViwerRegionName, PDFViewer);
+            //}
+            //if (string.IsNullOrEmpty(CurrentBar) || CurrentBar.Equals("TabItemPageEdit", StringComparison.OrdinalIgnoreCase))
+            //{
+            //    EnterSelectedBar("TabItemAnnotation");
+            //}
+            //else
+            //{
+            //    EnterSelectedBar(CurrentBar);
+            //}
+            #endregion
+
+            //还原背景色
+            PDFViewer.SetBackgroundBrush(new System.Windows.Media.SolidColorBrush(Settings.Default.AppProperties.InitialVIew.BackGround));
+            this.events.GetEvent<ReadModeEvent>().Publish(new ReadModeArgs() { Unicode = unicode, IsReadMode = false });
             bool isExist = false;
             if (region.Regions.ContainsRegionWithName(TipContentRegionName))
             {
@@ -1545,6 +1564,7 @@ namespace PDF_Office.ViewModels
                 region.RequestNavigate(TipContentRegionName, "ReadModelTip");
             }
 
+
             IsLoading = Visibility.Collapsed;
 
             ShowTip(true);

+ 1 - 7
PDF Office/Views/BOTA/AnnotationListItem.xaml

@@ -353,13 +353,7 @@
                 Name="ImageContext"
                 Grid.Row="1"
                 Source="{Binding WriteableBitmap}">
-                <Image.RenderTransform>
-                    <TransformGroup>
-                        <TranslateTransform />
-                        <ScaleTransform />
-                        <RotateTransform />
-                    </TransformGroup>
-                </Image.RenderTransform>
+
             </Image>
 
             <StackPanel Grid.Row="2" Margin="0,2">

+ 23 - 82
PDF Office/Views/BOTA/AnnotationListItem.xaml.cs

@@ -236,99 +236,40 @@ namespace PDF_Office.Views.BOTA
             double width = args.WriteableBitmap.Width;
             double height = args.WriteableBitmap.Height;
 
-            #region 方案一
-
             CPDFDocument doc = args.Document;
             CPDFPage docPage = doc.PageAtIndex(args.PageIndex, false);
             if (docPage != null)
             {
-                //BitmapImage bitmapImage = new BitmapImage();
-                //bitmapImage.BeginInit();
-                //bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
-                //bitmapImage.StreamSource = args.WriteableBitmap.StreamSource;
-
-                //switch (docPage.Rotation)
-                //{
-                //    case 0:
-                //        bitmapImage.Rotation = Rotation.Rotate0;
-                //        break;
-
-                //    case 1:
-                //        bitmapImage.Rotation = Rotation.Rotate90;
-                //        break;
-
-                //    case 2:
-                //        bitmapImage.Rotation = Rotation.Rotate180;
-                //        break;
-
-                //    case 3:
-                //        bitmapImage.Rotation = Rotation.Rotate270;
-                //        break;
-                //}
-                //bitmapImage.EndInit();
-                //ImageContext.Source = bitmapImage;
-
-                //switch (rotate)
-                //{
-                //    case 0:
-                //        RotateTransform rotateTransform = new RotateTransform(0);
-                //        ImageContext.RenderTransform = rotateTransform;
-                //        break;
-
-                //    case 1:
-                //        //rotateTransform = new RotateTransform(90);//90度
-                //        //ImageContext.RenderTransform = rotateTransform;
-                //        TransformGroup tg = ImageContext.RenderTransform as TransformGroup;
-                //        var tgnew = tg.CloneCurrentValue();
-                //        if (tgnew != null)
-                //        {
-                //            RotateTransform rt = tgnew.Children[2] as RotateTransform;
-                //            ImageContext.RenderTransformOrigin = new Point(0.5, 0.5);
-                //            rt.Angle = 90;
-                //        }
-
-                //        // 重新给图像赋值Transform变换属性
-                //        ImageContext.RenderTransform = tgnew;
-                //        break;
-
-                //    case 2:
-                //        rotateTransform = new RotateTransform(180);
-                //        ImageContext.RenderTransform = rotateTransform;
-                //        break;
-
-                //    case 3:
-                //        rotateTransform = new RotateTransform(270);
-                //        ImageContext.RenderTransform = rotateTransform;
-                //        break;
-                //}
-            }
-
-            #endregion 方案一
+                double maxWidth = docPage.PageSize.Width;
+                double maxHeight = docPage.PageSize.Height;
+                ImageContext.MaxHeight = maxHeight;
 
-            if (width > 180)
-            {
-                ImageContext.Stretch = Stretch.Uniform;
-            }
-            else
-            {
-                if (height >= 900)
+                if (width > 180)
                 {
-                    ImageContext.MaxHeight = 900;
                     ImageContext.Stretch = Stretch.Uniform;
                 }
-
-                if (height < 900)
+                else
                 {
-                    if (height <= 20)
+                    if (height >= maxHeight/2)
                     {
-                        ImageContext.MinHeight = height;
-                        ImageContext.MinHeight = 30;
+                        //ImageContext.MaxHeight = 900;
+                        ImageContext.Stretch = Stretch.None;
                     }
-                    ImageContext.Stretch = Stretch.None;
-                }
-                else
-                {
-                    ImageContext.Stretch = Stretch.Uniform;
+
+                    if (height < maxHeight/2)
+                    {
+                        if (height <= 20)
+                        {
+                            ImageContext.MinHeight = height;
+                            ImageContext.Height = 30;
+                            
+                        }
+                        ImageContext.Stretch = Stretch.None;
+                    }
+                    //else
+                    //{
+                    //    ImageContext.Stretch = Stretch.Uniform;
+                    //}
                 }
             }
         }

+ 22 - 1
PDF Office/Views/ViewContent.xaml.cs

@@ -62,6 +62,27 @@ namespace PDF_Office.Views
         public ViewContent(IEventAggregator eventAggregator) : this()
         {
             eventAggregator.GetEvent<SplitEvent>().Subscribe(ChangeSplitModeUI, e => e.Unicode == unicode);
+
+            eventAggregator.GetEvent<ReadModeEvent>().Subscribe(ChangeReadModeUI, e => e.Unicode == unicode);
+        }
+
+        private void ChangeReadModeUI(ReadModeArgs obj)
+        {
+            if (obj.IsReadMode)
+            {
+                Grid.SetRowSpan(DocumentView, 4);
+                Grid.SetRow(DocumentView, 0);
+
+                Grid.SetColumnSpan(GridViewer, 4);
+                Grid.SetColumn(GridViewer, 0);
+            }
+            else
+            {
+                //Grid.SetRowSpan(DocumentView, 0);
+                Grid.SetRow(DocumentView, 2);
+
+                Grid.SetColumn(GridViewer, 2);
+            }
         }
 
         /// <summary>
@@ -243,7 +264,7 @@ namespace PDF_Office.Views
 
                 string[] file = (string[])e.Data.GetData(DataFormats.FileDrop);
                 //页面编辑模式下 不响应拖拽打开文件
-                if (file!=null  &&file.Length > 0&&!(this.DataContext as ViewContentViewModel).isInPageEdit)
+                if (file != null && file.Length > 0 && !(this.DataContext as ViewContentViewModel).isInPageEdit)
                 {
                     App.mainWindowViewModel.AddTab.Execute();
                     (App.mainWindowViewModel.SelectedItem.DataContext as MainContentViewModel).homeContentViewModel.AddFileFromDrag(file.ToList());