Quellcode durchsuchen

页面编辑-补充缩放页面后刷图逻辑

ZhouJieSheng vor 2 Jahren
Ursprung
Commit
ea916c7b42

+ 25 - 0
PDF Office/EventAggregators/PageEditNotifyEvent.cs

@@ -0,0 +1,25 @@
+using Prism.Events;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace PDF_Office.EventAggregators
+{
+    /// <summary>
+    /// 页面编辑 Vm通知View更新页面的事件
+    /// </summary>
+    public class PageEditNotifyEvent:PubSubEvent<PageEditNotifyEventArgs>
+    {
+
+    }
+
+    public class PageEditNotifyEventArgs
+    {
+        /// <summary>
+        /// 避免触发其他页签的识别码
+        /// </summary>
+        public string Unicode { get; set; }
+    }
+}

+ 1 - 0
PDF Office/PDF Office.csproj

@@ -118,6 +118,7 @@
       <DependentUpon>ToastControl.xaml</DependentUpon>
     </Compile>
     <Compile Include="CustomControl\Utils.cs" />
+    <Compile Include="EventAggregators\PageEditNotifyEvent.cs" />
     <Compile Include="EventAggregators\PageEditRefreshEvent.cs" />
     <Compile Include="Helper\SettingHelper.cs" />
     <Compile Include="Model\DialogNames.cs" />

+ 5 - 0
PDF Office/ViewModels/PageEdit/PageEditContentViewModel.cs

@@ -377,6 +377,9 @@ namespace PDF_Office.ViewModels.PageEdit
                 PageEditItems[i].ItemSize = new Size(PageEditItems[i].ItemSize.Width * 2, PageEditItems[i].ItemSize.Height * 2);
             }
             ZoomIndex++;
+
+            //通知UI刷新页面范围
+            eventor.GetEvent<PageEditNotifyEvent>().Publish(new PageEditNotifyEventArgs() { Unicode = unicode});
         }
 
         /// <summary>
@@ -389,6 +392,8 @@ namespace PDF_Office.ViewModels.PageEdit
                 PageEditItems[i].ItemSize = new Size(PageEditItems[i].ItemSize.Width /2, PageEditItems[i].ItemSize.Height /2);
             }
             ZoomIndex--;
+            //通知UI刷新页面范围
+            eventor.GetEvent<PageEditNotifyEvent>().Publish(new PageEditNotifyEventArgs() { Unicode = unicode });
         }
 
         private bool CanZoomIn()

+ 8 - 0
PDF Office/Views/PageEdit/PageEditContent.xaml.cs

@@ -64,6 +64,9 @@ namespace PDF_Office.Views.PageEdit
 
             timer.Interval = TimeSpan.FromSeconds(0.3);
             timer.Tick += Timer_Tick;
+
+            //订阅页面刷新事件
+            eventor.GetEvent<PageEditNotifyEvent>().Subscribe(OneNotifyEvent, e => e.Unicode == unicode);
         }
 
         private void Timer_Tick(object sender, EventArgs e)
@@ -72,6 +75,11 @@ namespace PDF_Office.Views.PageEdit
             timer.Stop();
         }
 
+        private void OneNotifyEvent(PageEditNotifyEventArgs  e)
+        {
+            PulishEvent();
+        }
+
 
         #region UI事件
         /// <summary>