Jelajahi Sumber

Merge branch 'practice2' into dev

# Conflicts:
#	PDF Office/ViewModels/ViewContentViewModel.cs
ZhouJieSheng 2 tahun lalu
induk
melakukan
c050d49a00

+ 45 - 22
PDF Office/ViewModels/BottomToolContentViewModel.cs

@@ -378,43 +378,66 @@ namespace PDF_Office.ViewModels
 
         private void ZoomIn()
         {
-            var zoom = PDFViewer.ZoomFactor * 100;
-            if (zoom >= 1 && zoom <= 100)
-            {
-                PDFViewer.Zoom((zoom + 5) / 100.0);
-            }
-            else if (zoom <= 500)
-            {
-                PDFViewer.Zoom((zoom + 50) / 100.0);
-            }
-            else
-            {
-                PDFViewer.Zoom((zoom + 100) / 100.0);
-            }
+            double zoom = SetPageZoomFactor(true);
+            PDFViewer.Zoom(zoom / 100);
         }
 
         private void ZoomOut()
         {
-            var zoom = PDFViewer.ZoomFactor * 100;
-            if (zoom >= 1 && zoom <= 100)
+            double zoom = SetPageZoomFactor(false);
+            PDFViewer.Zoom(zoom / 100);
+        }
+
+        private double SetPageZoomFactor(bool flag)
+        {
+            double zoom = PDFViewer.ZoomFactor * 100;
+            if (flag)
             {
-                PDFViewer.Zoom((zoom - 5) / 100.0);
+                if (zoom >= 25 && zoom <= 300)
+                {
+                    zoom = zoom + 25;
+                }
+                else if (zoom >= 301 && zoom <= 1000)
+                {
+                    zoom = zoom + 40;
+                }
+                else if (zoom >= 1001 && zoom <= 10000)
+                {
+                    zoom = zoom + 100;
+                }
             }
-            else if (zoom <= 500)
+            else
             {
-                PDFViewer.Zoom((zoom - 50) / 100.0);
+                if (zoom >= 25 && zoom <= 300)
+                {
+                    zoom = zoom - 25;
+                }
+                else if (zoom >= 301 && zoom <= 1000)
+                {
+                    zoom = zoom - 40;
+                }
+                else if (zoom >= 1001 && zoom <= 10000)
+                {
+                    zoom = zoom - 100;
+                }
             }
-            else
+
+            if (zoom < 25)
+            {
+                zoom = 25;
+            }
+            if (zoom > 10000)
             {
-                PDFViewer.Zoom((zoom - 100) / 100.0);
+                zoom = 10000;
             }
+            return zoom;
         }
 
         private bool CanZoomIn()
         {
             if (PDFViewer != null)
             {
-                if (PDFViewer.ZoomFactor * 100 >= 1000)
+                if (PDFViewer.ZoomFactor * 100 >= 10000)
                     return false;
                 else
                     return true;
@@ -426,7 +449,7 @@ namespace PDF_Office.ViewModels
         {
             if (PDFViewer != null)
             {
-                if (PDFViewer.ZoomFactor * 100 <= 1)
+                if (PDFViewer.ZoomFactor * 100 <= 25)
                     return false;
                 else
                     return true;

+ 243 - 30
PDF Office/ViewModels/PropertyPanel/ViewModular/ReadModeContentViewModel.cs

@@ -19,6 +19,8 @@ using System.Windows.Media;
 using KeyEventArgs = System.Windows.Input.KeyEventArgs;
 using TextBox = System.Windows.Controls.TextBox;
 using static System.Windows.Forms.VisualStyles.VisualStyleElement;
+using Button = System.Windows.Controls.Button;
+using System.Windows.Controls.Primitives;
 
 namespace PDF_Office.ViewModels.PropertyPanel.ViewModular
 {
@@ -49,12 +51,42 @@ namespace PDF_Office.ViewModels.PropertyPanel.ViewModular
             }
         }
 
+        private bool CanNextPageExcute()
+        {
+            if (PDFViewer != null)
+            {
+                if (PDFViewer.CurrentIndex >= PDFViewer.Document.PageCount - 1)
+                    return false;
+                else
+                    return true;
+            }
+            return false;
+        }
+
+        private bool CanPrePageExcute()
+        {
+            if (PDFViewer != null)
+            {
+                if (PDFViewer.CurrentIndex <= 0)
+                    return false;
+                else
+                    return true;
+            }
+            return false;
+        }
+
+        private Button btnPrePage = null;
+        private Button btnNextPage = null;
+        private RepeatButton btnZoomOut = null;
+        private RepeatButton btnZoomIn = null;
+
         public DelegateCommand<object> KeyDownCommand { get; set; }
         public DelegateCommand<object> PreviewKeyDownCommand { get; set; }
         public DelegateCommand<object> ZoomOutCommand { get; set; }
         public DelegateCommand<object> ZoomInCommand { get; set; }
-        public DelegateCommand<object> PrePageCommand { get; set; }
-        public DelegateCommand<object> NextPageCommand { get; set; }
+        public DelegateCommand PrePageCommand { get; set; }
+        public DelegateCommand NextPageCommand { get; set; }
+        public DelegateCommand<object> LoadedCommand { get; set; }
 
         public ReadModeContentViewModel()
         {
@@ -63,60 +95,149 @@ namespace PDF_Office.ViewModels.PropertyPanel.ViewModular
             ZoomOutCommand = new DelegateCommand<object>(PageZoomOutEvent);
             ZoomInCommand = new DelegateCommand<object>(PageZoomInEvent);
 
-            PrePageCommand = new DelegateCommand<object>(PrePageEvent);
-            NextPageCommand = new DelegateCommand<object>(NextPageEvent);
+            PrePageCommand = new DelegateCommand(PrePageEvent);
+            NextPageCommand = new DelegateCommand(NextPageEvent);
+            LoadedCommand = new DelegateCommand<object>(Loaded);
         }
 
-        private void NextPageEvent(object obj)
+        /// <summary>
+        /// 页面加载
+        /// </summary>
+        /// <param name="obj"></param>
+        private void Loaded(object obj)
         {
-            if (PDFViewer.ModeView == ComPDFKitViewer.ViewMode.Double || PDFViewer.ModeView == ComPDFKitViewer.ViewMode.DoubleContinuous || PDFViewer.ModeView == ComPDFKitViewer.ViewMode.Book || PDFViewer.ModeView == ComPDFKitViewer.ViewMode.BookContinuous)
-
+            if (obj is CompositeCommandParameter composite)
             {
-                PDFViewer.GoToPage(PDFViewer.CurrentIndex + 2);
+                if (composite.Parameter is object[] array)
+                {
+                    btnPrePage = array[0] as Button;
+                    btnNextPage = array[1] as Button;
+                    btnZoomOut = array[2] as RepeatButton;
+                    btnZoomIn = array[3] as RepeatButton;
+                    ChangeBtnZoom();
+                    ChangePageBtnState();
+                }
             }
-            else
-                PDFViewer.GoToPage(PDFViewer.CurrentIndex + 1);
         }
 
-        private void PrePageEvent(object obj)
+        /// <summary>
+        /// 下一页
+        /// </summary>
+        /// <param name="obj"></param>
+        private void NextPageEvent()
         {
             if (PDFViewer.ModeView == ComPDFKitViewer.ViewMode.Double || PDFViewer.ModeView == ComPDFKitViewer.ViewMode.DoubleContinuous || PDFViewer.ModeView == ComPDFKitViewer.ViewMode.Book || PDFViewer.ModeView == ComPDFKitViewer.ViewMode.BookContinuous)
+
             {
-                PDFViewer.GoToPage(PDFViewer.CurrentIndex - 1);
+                if (((int)PDFViewer.Mode % 2) == 0)
+                {
+                    PDFViewer.GoToPage(PDFViewer.CurrentIndex + 2);
+                }
             }
             else
             {
-                PDFViewer.GoToPage(PDFViewer.CurrentIndex - 1);
+                PDFViewer.GoToPage(PDFViewer.CurrentIndex + 1);
             }
         }
 
+        /// <summary>
+        /// 上一页
+        /// </summary>
+        /// <param name="obj"></param>
+        private void PrePageEvent()
+        {
+            PDFViewer.GoToPage(PDFViewer.CurrentIndex - 1);
+        }
+
+        /// <summary>
+        /// 放大
+        /// </summary>
+        /// <param name="obj"></param>
         private void PageZoomInEvent(object obj)
         {
-            double zoom = PDFViewer.ZoomFactor * 100;
-            zoom = zoom + 25;
-            if (zoom != 0 && zoom <= 1000 && PDFViewer != null)
+            if (PDFViewer != null)
             {
+                double zoom = SetPageZoomFactor(true);
                 PDFViewer.Zoom(zoom / 100);
+                ChangeBtnZoom();
             }
         }
 
-        private void PageZoomOutEvent(object obj)
+        /// <summary>
+        /// 设置缩放因子
+        /// </summary>
+        /// <param name="flag"></param>
+        /// <returns></returns>
+        private double SetPageZoomFactor(bool flag)
         {
             double zoom = PDFViewer.ZoomFactor * 100;
-            zoom = zoom - 25;
-            if (zoom != 0 && PDFViewer != null)
+            if (flag)
+            {
+                if (zoom >= 25 && zoom <= 300)
+                {
+                    zoom = zoom + 25;
+                }
+                else if (zoom >= 301 && zoom <= 1000)
+                {
+                    zoom = zoom + 40;
+                }
+                else if (zoom >= 1001 && zoom <= 10000)
+                {
+                    zoom = zoom + 100;
+                }
+            }
+            else
+            {
+                if (zoom >= 25 && zoom <= 300)
+                {
+                    zoom = zoom - 25;
+                }
+                else if (zoom >= 301 && zoom <= 1000)
+                {
+                    zoom = zoom - 40;
+                }
+                else if (zoom >= 1001 && zoom <= 10000)
+                {
+                    zoom = zoom - 100;
+                }
+            }
+
+            if (zoom < 25)
+            {
+                zoom = 25;
+            }
+            if (zoom > 10000)
+            {
+                zoom = 10000;
+            }
+            return zoom;
+        }
+
+        /// <summary>
+        /// 缩小
+        /// </summary>
+        /// <param name="obj"></param>
+        private void PageZoomOutEvent(object obj)
+        {
+            if (PDFViewer != null)
             {
+                double zoom = SetPageZoomFactor(false);
                 PDFViewer.Zoom(zoom / 100);
+                ChangeBtnZoom();
             }
         }
 
+        /// <summary>
+        /// 输入限制
+        /// </summary>
+        /// <param name="obj"></param>
         private void PreviewKeyDownEvent(object obj)
         {
             var args = obj as KeyEventArgs;
             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,Key.NumPad3,Key.NumPad4,Key.NumPad5,Key.NumPad6,Key.NumPad7,Key.NumPad8,Key.NumPad9,Key.Delete,Key.Back,Key.Enter,Key.Right,Key.Left};
+                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, Key.NumPad3, Key.NumPad4, Key.NumPad5, Key.NumPad6, Key.NumPad7, Key.NumPad8, Key.NumPad9, Key.Delete, Key.Back, Key.Enter, Key.Right, Key.Left };
                 if (!NumberKeys.Contains(args.Key))
                 {
                     args.Handled = true;
@@ -124,6 +245,10 @@ namespace PDF_Office.ViewModels.PropertyPanel.ViewModular
             }
         }
 
+        /// <summary>
+        /// 回车键保存
+        /// </summary>
+        /// <param name="obj"></param>
         private void KeyDownEvent(object obj)
         {
             if (obj is CompositeCommandParameter objs)
@@ -160,9 +285,12 @@ namespace PDF_Office.ViewModels.PropertyPanel.ViewModular
 
                             PDFViewer.GoToPage(pagenum - 1);
                             CurrentPage = pagenum;
-                            txtCurrentPageNum.Text = pagenum.ToString();
+
                             textBlock.Visibility = System.Windows.Visibility.Visible;
+
+                            txtCurrentPageNum.Text = pagenum.ToString();
                             txtCurrentPageNum.Background = new SolidColorBrush(Colors.Transparent);
+                            //移动焦点
                             txtCurrentPageNum.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
                         }
                     }
@@ -181,30 +309,115 @@ namespace PDF_Office.ViewModels.PropertyPanel.ViewModular
 
         public void OnNavigatedTo(NavigationContext navigationContext)
         {
-            var viewContentViewModel = navigationContext.Parameters[ParameterNames.ViewContentViewModel] as ViewContentViewModel;
-            if (viewContentViewModel != null)
+            if (navigationContext.Parameters[ParameterNames.ViewContentViewModel] is ViewContentViewModel viewContentViewModel)
             {
                 this.viewContentViewModel = viewContentViewModel;
             }
-            var pdfview = navigationContext.Parameters[ParameterNames.PDFViewer] as CPDFViewer;
-            if (pdfview != null)
+            if (navigationContext.Parameters[ParameterNames.PDFViewer] is CPDFViewer pdfview)
             {
                 //获取页面设置等信息
                 this.PDFViewer = pdfview;
-                PageCount = PDFViewer.Document.PageCount;
-                CurrentPage = PDFViewer.CurrentIndex + 1;
-                this.PDFViewer.InfoChanged += PDFViewer_InfoChanged;
+                if (PDFViewer != null)
+                {
+                    PageCount = PDFViewer.Document.PageCount;
+                    CurrentPage = PDFViewer.CurrentIndex + 1;
+                    this.PDFViewer.InfoChanged += PDFViewer_InfoChanged;
+                }
             }
         }
 
+        /// <summary>
+        /// 滚动的时候,参数变化
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
         private void PDFViewer_InfoChanged(object sender, KeyValuePair<string, object> e)
         {
             if (e.Key == "SplieMode" || e.Key == "ViewMode")
             {
                 return;
             }
-            PageCount = PDFViewer.Document.PageCount;
-            CurrentPage = PDFViewer.CurrentIndex + 1;
+            if (e.Key == "PageNum")
+            {
+                CurrentPage = (int)e.Value;
+                PageCount = PDFViewer.Document.PageCount;
+                ChangeBtnZoom();
+                ChangePageBtnState();
+            }
+        }
+
+        /// <summary>
+        /// 改变缩放按钮
+        /// </summary>
+        private void ChangeBtnZoom()
+        {
+            if (PDFViewer == null)
+            {
+                return;
+            }
+            if (btnZoomOut == null && btnZoomIn == null)
+            {
+                return;
+            }
+            if (PDFViewer.ZoomFactor * 100 <= 25)
+            {
+                btnZoomOut.IsEnabled = false;
+                btnZoomOut.Opacity = 0.5;
+
+                btnZoomIn.IsEnabled = true;
+                btnZoomIn.Opacity = 1;
+            }
+            else if (PDFViewer.ZoomFactor * 100 >= 25 && PDFViewer.ZoomFactor * 100 <= 10000)
+            {
+                btnZoomOut.Opacity = 1;
+                btnZoomOut.IsEnabled = true;
+
+                btnZoomIn.IsEnabled = true;
+                btnZoomIn.Opacity = 1;
+            }
+            else
+            {
+                btnZoomIn.IsEnabled = false;
+                btnZoomIn.Opacity = 0.5;
+
+                btnZoomOut.IsEnabled = true;
+                btnZoomOut.Opacity = 1;
+            }
+        }
+
+        /// <summary>
+        /// 改变上一页、下一页按钮
+        /// </summary>
+        private void ChangePageBtnState()
+        {
+            if (PDFViewer == null)
+            {
+                return;
+            }
+            if (btnPrePage == null && btnNextPage == null)
+            {
+                return;
+            }
+            if (PDFViewer.CurrentIndex + 1 <= 1)
+            {
+                btnPrePage.IsEnabled = false;
+                btnPrePage.Opacity = 0.5;
+            }
+            else
+            {
+                btnPrePage.IsEnabled = true;
+                btnPrePage.Opacity = 1;
+            }
+            if (PDFViewer.CurrentIndex + 1 >= PDFViewer.Document.PageCount)
+            {
+                btnNextPage.IsEnabled = false;
+                btnNextPage.Opacity = 0.5;
+            }
+            else
+            {
+                btnNextPage.IsEnabled = true;
+                btnNextPage.Opacity = 1;
+            }
         }
     }
 }

+ 24 - 19
PDF Office/ViewModels/ViewContentViewModel.cs

@@ -52,7 +52,7 @@ namespace PDF_Office.ViewModels
 
         public string ConverterBarContentRegionName { get; set; }
 
-       public string BackgroundContentRegionName{get; set;}
+        public string BackgroundContentRegionName { get; set; }
 
         /// <summary>
         /// 底部工具栏 RegionName
@@ -85,6 +85,7 @@ namespace PDF_Office.ViewModels
         ///40:显示
         /// </summary>
         private int toolRowHeight = 40;
+
         public int ToolRowHeight
         {
             get { return toolRowHeight; }
@@ -100,6 +101,7 @@ namespace PDF_Office.ViewModels
         /// 260:显示
         /// </summary>
         private int propertyColumnWidth = 0;
+
         public int PropertyColumnWidth
         {
             get { return propertyColumnWidth; }
@@ -109,7 +111,6 @@ namespace PDF_Office.ViewModels
             }
         }
 
-
         private int gridToolRow = 1;
 
         /// <summary>
@@ -154,6 +155,7 @@ namespace PDF_Office.ViewModels
         }
 
         private Visibility gridVisibility = Visibility.Visible;
+
         /// <summary>
         /// 是否正在加载中
         /// </summary>
@@ -197,6 +199,7 @@ namespace PDF_Office.ViewModels
         }
 
         private Visibility toolsBarContentVisible = Visibility.Collapsed;
+
         /// <summary>
         /// 控制ToolsBarContent的显示
         /// 留意:显示前需要先注入内容、设置好行和跨行数
@@ -336,7 +339,7 @@ namespace PDF_Office.ViewModels
 
         private string previousBar = "";
 
-        private string currentBar = "";
+        public string CurrentBar = "";
 
         /// <summary>
         /// 用来避免重复触发导航事件的标志符
@@ -366,7 +369,9 @@ namespace PDF_Office.ViewModels
 
         public DelegateCommand RedoCommand { get; set; }
         public DelegateCommand<object> MenuEnterReadMode { get; set; }
-        #endregion
+
+        #endregion 命令
+
         public ViewContentViewModel(IRegionManager regionManager, IDialogService dialogService, IEventAggregator eventAggregator)
 
         {
@@ -375,7 +380,7 @@ namespace PDF_Office.ViewModels
 
             LoadFile = new DelegateCommand(loadFile);
             Load = new DelegateCommand(LoadControl);
-            SaveFile = new DelegateCommand(()=> { saveFile(); });
+            SaveFile = new DelegateCommand(() => { saveFile(); });
             SaveAsFile = new DelegateCommand(() => { saveAsFile(); });
             UndoCommand = new DelegateCommand(Undo);
             RedoCommand = new DelegateCommand(Redo);
@@ -390,6 +395,7 @@ namespace PDF_Office.ViewModels
 
             //未显示时无法注册上Region名称
             ToolContentVisible = Visibility.Visible;
+            ToolsBarContentVisible = Visibility.Visible;
             ToolContentRegionName = Guid.NewGuid().ToString();
             ToolsBarContentRegionName = Guid.NewGuid().ToString();
             ConverterBarContentRegionName = Guid.NewGuid().ToString();
@@ -401,7 +407,6 @@ namespace PDF_Office.ViewModels
             InitialregionNameByTabItem(ref regionNameByTabItem);
             InitialbarContentByTabItem(ref barContentByTabItem);
 
-
             eventAggregator.GetEvent<EnterSelectedEditToolEvent>().Subscribe(EnterEditTools);
             eventAggregator.GetEvent<CloseEditToolEvent>().Subscribe(CloseEditTool);
 
@@ -452,9 +457,11 @@ namespace PDF_Office.ViewModels
                 case "TabItemEdit":
                     ToolsBarContentVisible = Visibility.Visible;
                     break;
+
                 case "TabItemConvert":
                     ConverterBarContentVisible = Visibility.Visible;
                     break;
+
                 case "TabItemPageEdit":
                 case "WatermarkContent":
                 case "BackgroundContent":
@@ -496,20 +503,20 @@ namespace PDF_Office.ViewModels
             if (args != null)
             {
                 var item = args.AddedItems[0] as TabItem;
-                currentBar = item.Name;
-                if (previousBar != currentBar)
+                CurrentBar = item.Name;
+                if (previousBar != CurrentBar)
                 {
-                    if (currentBar == "TabItemPageEdit")//如果是页面编辑则进入页面编辑模式
+                    if (CurrentBar == "TabItemPageEdit")//如果是页面编辑则进入页面编辑模式
                     {
-                        EnterToolMode(barContentByTabItem[currentBar]);
+                        EnterToolMode(barContentByTabItem[CurrentBar]);
                         isInPageEdit = true;
                     }
                     else//其余情况直接导航至对应的工具栏即可,不需要清空之前的content,region里是单例模式
                     {
-                        EnterSelectedBar(currentBar);
+                        EnterSelectedBar(CurrentBar);
                         isInPageEdit = false;
                     }
-                    previousBar = currentBar;
+                    previousBar = CurrentBar;
                 }
             }
         }
@@ -878,7 +885,6 @@ namespace PDF_Office.ViewModels
                 }
                 //ToolContent的visible跟toolsbarContent 的visible是互斥的
                 UpdateShowContent(currentBar);
-
             }
             else
             {
@@ -901,21 +907,20 @@ namespace PDF_Office.ViewModels
 
         private void CloseEditTool()
         {
-            currentBar = "TabItemTool";
-            EnterSelectedBar(currentBar);
+            CurrentBar = "TabItemTool";
+            EnterSelectedBar(CurrentBar);
         }
+
         /// <summary>
         /// 二级菜单指定目标处理
         /// </summary>
         /// <param name="e"></param>
         private void EnterSelectedEditTool(string EditToolName)
         {
-            currentBar = EditToolName;
+            CurrentBar = EditToolName;
             EnterToolMode(EditToolName);
         }
 
- 
-
         /// <summary>
         /// 进入工具编辑(如页面编辑、水印、密文等)模式
         /// </summary>
@@ -936,7 +941,7 @@ namespace PDF_Office.ViewModels
                 param = valuePairs;
             }
             region.RequestNavigate(ToolContentRegionName, targetToolMode, param);
-            ShowContent(currentBar, true);
+            ShowContent(CurrentBar, true);
 
             IsLoading = Visibility.Collapsed;
         }

+ 28 - 7
PDF Office/Views/PropertyPanel/ViewModular/ReadModeContent.xaml

@@ -15,7 +15,7 @@
     Width="auto"
     d:DataContext="{d:DesignInstance Type=ViewModular:ReadModeContentViewModel}"
     d:DesignHeight="44"
-    d:DesignWidth="220"
+    d:DesignWidth="230"
     Background="#CC000000"
     mc:Ignorable="d">
 
@@ -30,7 +30,7 @@
     <StackPanel Name="ParentPanel" Orientation="Horizontal">
 
         <RepeatButton
-            x:Name="btnZoomOut"
+            x:Name="BtnZoomOut"
             Width="32"
             Height="32"
             Margin="1,0,2,0"
@@ -40,7 +40,7 @@
             Interval="200"
             Template="{StaticResource zoomout}" />
         <RepeatButton
-            Name="btnZoomIn"
+            Name="BtnZoomIn"
             Width="32"
             Height="32"
             Margin="0,0,1,0"
@@ -125,14 +125,35 @@
             </Grid>
         </Border>
         <Button
-            Name="btnPrePage"
+            Name="BtnPrePage"
             Margin="25,0,2,0"
             Background="Transparent"
-            Template="{StaticResource prepage}" Command="{Binding PrePageCommand}" />
+            Command="{Binding PrePageCommand}"
+            CommandParameter="{Binding ElementName=BtnPrePage}"
+            Template="{StaticResource prepage}" />
         <Button
-            x:Name="btnNextPage"
+            x:Name="BtnNextPage"
             Margin="2,0,1,0"
             Background="Transparent"
-            Template="{StaticResource nextpage}" Command="{Binding NextPageCommand}" />
+            Command="{Binding NextPageCommand}"
+            CommandParameter="{Binding ElementName=BtnNextPage}"
+            Template="{StaticResource nextpage}" />
     </StackPanel>
+
+    <i:Interaction.Triggers>
+        <i:EventTrigger EventName="Loaded">
+            <helper:AdvancedInvokeCommandAction Command="{Binding LoadedCommand}" PassEventArgsToCommand="True">
+                <helper:AdvancedInvokeCommandAction.CommandParameter>
+                    <MultiBinding Converter="{StaticResource ResourceKey=ObjectConvert}" Mode="TwoWay">
+                        <MultiBinding.Bindings>
+                            <Binding ElementName="BtnPrePage" />
+                            <Binding ElementName="BtnNextPage" />
+                            <Binding ElementName="BtnZoomOut" />
+                            <Binding ElementName="BtnZoomIn" />
+                        </MultiBinding.Bindings>
+                    </MultiBinding>
+                </helper:AdvancedInvokeCommandAction.CommandParameter>
+            </helper:AdvancedInvokeCommandAction>
+        </i:EventTrigger>
+    </i:Interaction.Triggers>
 </UserControl>

+ 2 - 1
PDF Office/Views/ViewContent.xaml

@@ -193,7 +193,7 @@
                         <Style TargetType="{x:Type ColumnDefinition}">
                             <Style.Triggers>
                                 <DataTrigger Binding="{Binding ElementName=TbtnProperty, Path=IsChecked}" Value="True">
-                                    <Setter Property="Width" Value="256" />
+                                    <Setter Property="Width" Value="260" />
                                 </DataTrigger>
                                 <DataTrigger Binding="{Binding ElementName=TbtnProperty, Path=IsChecked}" Value="False">
                                     <Setter Property="Width" Value="0" />
@@ -229,6 +229,7 @@
                 HorizontalAlignment="Center"
                 VerticalAlignment="Bottom"
                 prism:RegionManager.RegionName="{Binding ReadModeRegionName}"
+                MouseEnter="RectangleReadMode_MouseEnter"
                 MouseLeave="ReadModeContent_MouseLeave"
                 Visibility="Collapsed" />
 

+ 25 - 6
PDF Office/Views/ViewContent.xaml.cs

@@ -2,10 +2,12 @@
 using PDF_Office.ViewModels;
 using PDF_Office.Views.PropertyPanel.ViewModular;
 using System;
+using System.Threading;
 using System.Windows;
 using System.Windows.Controls;
 using System.Windows.Input;
 using System.Windows.Media;
+using System.Windows.Threading;
 
 namespace PDF_Office.Views
 {
@@ -48,6 +50,7 @@ namespace PDF_Office.Views
                 viewModel.IsPropertyOpen = false;
                 viewModel.ToolContentVisible = Visibility.Collapsed;
                 viewModel.ToolsBarContentVisible = Visibility.Collapsed;
+                viewModel.ConverterBarContentVisible = Visibility.Collapsed;
                 this.ReadModeContent.Visibility = Visibility.Visible;
                 this.RectangleReadMode.Visibility = Visibility.Collapsed;
                 Grid.SetColumn(this.PDFViewerContent, 0);
@@ -59,8 +62,20 @@ namespace PDF_Office.Views
             {
                 viewModel.IsReadMode = Visibility.Visible;
                 viewModel.IsPropertyOpen = true;
-                viewModel.ToolContentVisible = Visibility.Visible;
-                viewModel.ToolsBarContentVisible = Visibility.Visible;
+                if (viewModel.CurrentBar == "TabItemConvert")
+                {
+                    viewModel.ConverterBarContentVisible = Visibility.Visible;
+                }
+                else if (viewModel.CurrentBar == "TabItemPageEdit")
+                {
+                    viewModel.ToolContentVisible = Visibility.Visible;
+                }
+                else
+                {
+                    viewModel.ToolsBarContentVisible = Visibility.Visible;
+                }
+                //viewModel.ToolContentVisible = Visibility.Visible;
+
                 this.ReadModeContent.Visibility = Visibility.Collapsed;
                 this.RectangleReadMode.Visibility = Visibility.Visible;
                 Grid.SetColumn(this.PDFViewerContent, 2);
@@ -95,6 +110,7 @@ namespace PDF_Office.Views
         private async void ReadModeContent_MouseLeave(object sender, RoutedEventArgs e)
         {
             await System.Threading.Tasks.Task.Delay(3000);
+            //Thread.Sleep(3000);
             this.ReadModeContent.Visibility = Visibility.Collapsed;
             this.RectangleReadMode.Visibility = Visibility.Visible;
         }
@@ -106,11 +122,14 @@ namespace PDF_Office.Views
         /// <param name="e"></param>
         private void RectangleReadMode_MouseEnter(object sender, MouseEventArgs e)
         {
-            if (App.IsBookMode)
+            Dispatcher.BeginInvoke(DispatcherPriority.Send, new Action(delegate
             {
-                this.ReadModeContent.Visibility = Visibility.Visible;
-                this.RectangleReadMode.Visibility = Visibility.Collapsed;
-            }
+                if (App.IsBookMode)
+                {
+                    this.ReadModeContent.Visibility = Visibility.Visible;
+                    this.RectangleReadMode.Visibility = Visibility.Collapsed;
+                }
+            }));
         }
     }
 }