liyijie před 2 roky
rodič
revize
17a45350f3
20 změnil soubory, kde provedl 888 přidání a 259 odebrání
  1. 86 16
      PDF Office/EventAggregators/EditToolsEvent.cs
  2. 23 10
      PDF Office/ViewModels/EditTools/Background/BackgroundContentViewModel.cs
  3. 38 15
      PDF Office/ViewModels/EditTools/Background/BackgroundCreateBaseContentViewModel.cs
  4. 74 26
      PDF Office/ViewModels/EditTools/Background/BackgroundCreateColorContentViewModel.cs
  5. 52 14
      PDF Office/ViewModels/EditTools/Background/BackgroundCreateFileContentViewModel.cs
  6. 10 5
      PDF Office/ViewModels/EditTools/Background/BackgroundDocumentContentViewModel.cs
  7. 22 7
      PDF Office/ViewModels/EditTools/Background/BackgroundTemplateListBaseContentViewModel.cs
  8. 31 10
      PDF Office/ViewModels/EditTools/Background/BackgroundTemplateListColorContentViewModel.cs
  9. 27 9
      PDF Office/ViewModels/EditTools/Background/BackgroundTemplateListFileContentViewModel.cs
  10. 28 16
      PDF Office/ViewModels/EditTools/Watermark/WatermarkContentViewModel.cs
  11. 85 23
      PDF Office/ViewModels/EditTools/Watermark/WatermarkCreateBaseContentViewModel.cs
  12. 132 26
      PDF Office/ViewModels/EditTools/Watermark/WatermarkCreateFileContentViewModel.cs
  13. 131 27
      PDF Office/ViewModels/EditTools/Watermark/WatermarkCreateTextContentViewModel.cs
  14. 19 10
      PDF Office/ViewModels/EditTools/Watermark/WatermarkDocumentContentViewModel.cs
  15. 42 11
      PDF Office/ViewModels/EditTools/Watermark/WatermarkTemplateListBaseContentViewModel.cs
  16. 43 18
      PDF Office/ViewModels/EditTools/Watermark/WatermarkTemplateListFileContentViewModel.cs
  17. 37 12
      PDF Office/ViewModels/EditTools/Watermark/WatermarkTemplateListTextContentViewModel.cs
  18. 1 1
      PDF Office/ViewModels/Tools/ToolsBarContentViewModel.cs
  19. 5 3
      PDF Office/ViewModels/ViewContentViewModel.cs
  20. 2 0
      PDFSettings/WatermarkTemplateList.cs

+ 86 - 16
PDF Office/EventAggregators/EditToolsEvent.cs

@@ -2,10 +2,12 @@
 using PDF_Office.Model.EditTools.Background;
 using PDF_Office.Model.EditTools.Watermark;
 using PDFSettings;
+using Prism.Commands;
 using Prism.Events;
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Runtime.CompilerServices;
 using System.Text;
 using System.Threading.Tasks;
 
@@ -45,21 +47,89 @@ namespace PDF_Office.EventAggregators
         StatusDeleteInitial
     }
 
+    
+
     public class StringWithUnicode
     {
         public string Unicode;
         public string EditToolsContentName;
     }
 
+    public class EnumCloseModeUnicode
+    {
+        public string Unicode;
+        public EnumCloseMode Status;
+    }
+
+    public class EnumTemplateListOrCreateUnicode
+    {
+        public string Unicode;
+        public EnumTemplateListOrCreate Status;
+    }
+
+    public class EnumColorOrFileUnicode
+    {
+        public string Unicode;
+        public EnumColorOrFile Status;
+    }
+
+    public class EnumTextOrFileUnicode
+    {
+        public string Unicode;
+        public EnumTextOrFile Status;
+    }
+
+    public class EnumDeleteUnicode
+    {
+        public string Unicode;
+        public EnumDelete Status;
+    }
+
+    public class stringUnicode
+    {
+        public string Unicode;
+        public string Status;
+    }
+
+    public class BackgroundInfoUnicode
+    {
+        public string Unicode;
+        public BackgroundInfo Status;
+    }
+
+    public class WatermarkInfoUnicode
+    {
+        public string Unicode;
+        public WatermarkInfo Status;
+    }
+
+    public class BackgroundItemUnicode
+    {
+        public string Unicode;
+        public BackgroundItem Status;
+    }
+
+    public class WatermarkItemUnicode
+    {
+        public string Unicode;
+        public WatermarkItem Status;
+    }
+
+    public class CPDFViewerUnicode
+    {
+        public string Unicode;
+        public CPDFViewer Status;
+    }
+
     public class EnterSelectedEditToolEvent : PubSubEvent<StringWithUnicode>
     {
     }
 
-    public class CloseEditToolEvent : PubSubEvent<EnumCloseMode>
+    public class CloseEditToolEvent : PubSubEvent<EnumCloseModeUnicode>
     {
     }
 
-    public class EnterTemplateListOrCreateEvent : PubSubEvent<EnumTemplateListOrCreate>
+    public class EnterTemplateListOrCreateEvent : PubSubEvent<EnumTemplateListOrCreateUnicode>
     {
     }
 
@@ -72,58 +142,58 @@ namespace PDF_Office.EventAggregators
     {
     }
 
-    public class SetCurrentCreateModEvent : PubSubEvent<string>
+    public class SetCurrentCreateModEvent : PubSubEvent<stringUnicode>
     {
     }
 
-    public class SetCurrentTemplateListModEvent : PubSubEvent<string>
+    public class SetCurrentTemplateListModEvent : PubSubEvent<stringUnicode>
     {
     }
 
-    public class SetBackgroundEvent : PubSubEvent<BackgroundInfo>
+    public class SetBackgroundEvent : PubSubEvent<BackgroundInfoUnicode>
     {
     }
 
-    public class SetWatermarkEvent : PubSubEvent<WatermarkInfo>
+    public class SetWatermarkEvent : PubSubEvent<WatermarkInfoUnicode>
     {
     }
 
-    public class SaveBackgroundTemplateEvent : PubSubEvent<EnumColorOrFile>
+    public class SaveBackgroundTemplateEvent : PubSubEvent<EnumColorOrFileUnicode>
     {
     }
 
-    public class SaveWatermarkTemplateEvent : PubSubEvent<EnumTextOrFile>
+    public class SaveWatermarkTemplateEvent : PubSubEvent<EnumTextOrFileUnicode>
     {
     }
 
-    public class DeleteWatermarkEvent : PubSubEvent<EnumDelete>
+    public class DeleteWatermarkEvent : PubSubEvent<EnumDeleteUnicode>
     {
     }
 
-    public class CurrentWatermarkPDFViewerEvent : PubSubEvent<CPDFViewer>
+    public class CurrentWatermarkPDFViewerEvent : PubSubEvent<CPDFViewerUnicode>
     {
     }
-    public class EditBackgroundTemplateItemEvent : PubSubEvent<BackgroundItem>
+    public class EditBackgroundTemplateItemEvent : PubSubEvent<BackgroundItemUnicode>
     {
     }
 
-    public class EditWatermarkTemplateItemEvent : PubSubEvent<WatermarkInfo>
+    public class EditWatermarkTemplateItemEvent : PubSubEvent<WatermarkItemUnicode>
     {
     }
 
-    public class ConfirmEditBackgroundTemplateItemEvent : PubSubEvent<EnumColorOrFile>
+    public class ConfirmEditBackgroundTemplateItemEvent : PubSubEvent<EnumColorOrFileUnicode>
     {
     }
 
-    public class ConfirmEditWatermarkTemplateItemEvent : PubSubEvent<EnumTextOrFile>
+    public class ConfirmEditWatermarkTemplateItemEvent : PubSubEvent<EnumTextOrFileUnicode>
     {
     }
 
-    public class SaveEditedBackgroundTemplateItemEvent : PubSubEvent<BackgroundItem>
+    public class SaveEditedBackgroundTemplateItemEvent : PubSubEvent<BackgroundItemUnicode>
     {
     }
 
-    public class SaveEditedWatermarkTemplateItemEvent : PubSubEvent<WatermarkItem>
+    public class SaveEditedWatermarkTemplateItemEvent : PubSubEvent<WatermarkItemUnicode>
     {
 
     }

+ 23 - 10
PDF Office/ViewModels/EditTools/Background/BackgroundContentViewModel.cs

@@ -98,10 +98,15 @@ namespace PDF_Office.ViewModels.EditTools.Background
         public DelegateCommand ConfirmEditToolCommand { get; set; }
         public DelegateCommand<string> EnterSelectedContentCommand { get; set; }
 
+        public string unicode = null;
+
+        public string Unicode = null;
+
         public BackgroundContentViewModel(IRegionManager regionManager, IEventAggregator eventAggregator)
         {
             this.eventAggregator = eventAggregator;
             this.backgroundRegion = regionManager;
+            Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
             BackgroundSettingsVisible = Visibility.Visible;
             BackgroundSettingsRegionName = Guid.NewGuid().ToString();
             BackgroundDocumentRegionName = Guid.NewGuid().ToString();
@@ -110,26 +115,27 @@ namespace PDF_Office.ViewModels.EditTools.Background
             ConfirmEditToolCommand = new DelegateCommand(ConfirmEditTool);
             EnterSelectedContentCommand = new DelegateCommand<string>(EnterSelectedContent);
 
-            eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Subscribe(EnterTemplateListOrCreate);
-            eventAggregator.GetEvent<SetCurrentCreateModEvent>().Subscribe(SetCurrentCreateMod);
-            eventAggregator.GetEvent<SetCurrentTemplateListModEvent>().Subscribe(SetCurrentTemplateListMod);
-            eventAggregator.GetEvent<EditBackgroundTemplateItemEvent>().Subscribe(EditBackgroundTemplateItem);
+            eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Subscribe(EnterTemplateListOrCreate, e => e.Unicode == Unicode);
+            eventAggregator.GetEvent<SetCurrentCreateModEvent>().Subscribe(SetCurrentCreateMod, e => e.Unicode == Unicode);
+            eventAggregator.GetEvent<SetCurrentTemplateListModEvent>().Subscribe(SetCurrentTemplateListMod, e => e.Unicode == Unicode);
+            eventAggregator.GetEvent<EditBackgroundTemplateItemEvent>().Subscribe(EditBackgroundTemplateItem, e => e.Unicode == Unicode);
         }
 
         public void CloseEditTool()
         {
-            this.eventAggregator.GetEvent<CloseEditToolEvent>().Publish(EnumCloseMode.StatusCancel);
+            this.eventAggregator.GetEvent<CloseEditToolEvent>().Publish(new EnumCloseModeUnicode { Unicode = Unicode, Status = EnumCloseMode.StatusCancel });
         }
 
         public void ConfirmEditTool()
         {
             this.eventAggregator.GetEvent<ConfirmEditToolsBackgroundEvent>().Publish();
 
-            this.eventAggregator.GetEvent<CloseEditToolEvent>().Publish(EnumCloseMode.StatusConfirm);
+            this.eventAggregator.GetEvent<CloseEditToolEvent>().Publish(new EnumCloseModeUnicode { Unicode=Unicode,Status= EnumCloseMode.StatusConfirm });
         }
 
-        public void EnterTemplateListOrCreate(EnumTemplateListOrCreate enumTemplateListOrCreate)
+        public void EnterTemplateListOrCreate(EnumTemplateListOrCreateUnicode enumTemplateListOrCreateunicode)
         {
+            EnumTemplateListOrCreate enumTemplateListOrCreate= enumTemplateListOrCreateunicode.Status;
             if (enumTemplateListOrCreate == EnumTemplateListOrCreate.StatusTemplate)
             {
                 EnterSelectedContent(TemplateListBaseName);
@@ -140,8 +146,9 @@ namespace PDF_Office.ViewModels.EditTools.Background
             }
         }
 
-        public void SetCurrentCreateMod(string currentCreateModName)
+        public void SetCurrentCreateMod(stringUnicode currentCreateModNameunicode)
         {
+            string currentCreateModName = currentCreateModNameunicode.Status;
             if (currentCreateModName == CreateModColorName)
             {
                 CurrentCreateMod = EnumColorOrFile.StatusColor;
@@ -152,18 +159,21 @@ namespace PDF_Office.ViewModels.EditTools.Background
             }
         }
 
-        public void EditBackgroundTemplateItem(BackgroundItem backgroundItem)
+        public void EditBackgroundTemplateItem(BackgroundItemUnicode backgroundItemunicode)
         {
+            BackgroundItem backgroundItem = backgroundItemunicode.Status;
             NavigationParameters param = new NavigationParameters();
             param.Add(ParameterNames.PDFViewer, PDFViewer);
             param.Add("CurrentTemplateListModName", CurrentTemplateListMod);
             param.Add("BackgroundItem", backgroundItem);
+            param.Add("UniCode", unicode);
             backgroundRegion.RequestNavigate(BackgroundSettingsRegionName, CreateBaseName, param);
             BackgroundSettingsVisible = Visibility.Visible;
         }
 
-        public void SetCurrentTemplateListMod(string currentTemplateListModName)
+        public void SetCurrentTemplateListMod(stringUnicode currentTemplateListModNameunicode)
         {
+            string currentTemplateListModName = currentTemplateListModNameunicode.Status;
             if (currentTemplateListModName == TemplateListModColorName)
             {
                 CurrentTemplateListMod = EnumColorOrFile.StatusColor;
@@ -178,6 +188,7 @@ namespace PDF_Office.ViewModels.EditTools.Background
         {
             NavigationParameters param = new NavigationParameters();
             param.Add(ParameterNames.PDFViewer, PDFViewer);
+            param.Add("UniCode", unicode);
             if (SelectedContentName == TemplateListBaseName)
             {
                 param.Add("CurrentCreateModName", CurrentCreateMod);
@@ -195,6 +206,7 @@ namespace PDF_Office.ViewModels.EditTools.Background
             NavigationParameters param = new NavigationParameters();
             param.Add(ParameterNames.PDFViewer, PDFViewer);
             param.Add(ParameterNames.ViewContentViewModel, viewContentViewModel);
+            param.Add("UniCode", unicode);
             backgroundRegion.RequestNavigate(BackgroundDocumentRegionName, BackgroundDocumentName, param);
             BackgroundDocumentVisible = Visibility.Visible;
         }
@@ -203,6 +215,7 @@ namespace PDF_Office.ViewModels.EditTools.Background
         {
             navigationContext.Parameters.TryGetValue<ViewContentViewModel>(ParameterNames.ViewContentViewModel, out viewContentViewModel);
             navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
+            navigationContext.Parameters.TryGetValue<string>("UniCode",out unicode);
             EnterSelectedContent(TemplateListBaseName);
             EnterDocumentContent();
         }

+ 38 - 15
PDF Office/ViewModels/EditTools/Background/BackgroundCreateBaseContentViewModel.cs

@@ -41,12 +41,12 @@ namespace PDF_Office.ViewModels.EditTools.Background
             set
             {
                 _createOrEdit = value;
-                if(value == EnumCreateOrEdit.StatusEdit)
+                if (value == EnumCreateOrEdit.StatusEdit)
                 {
                     EditBaseVisible = Visibility.Visible;
                     CreateBaseVisible = Visibility.Collapsed;
                 }
-                else if(value== EnumCreateOrEdit.StatusCreate)
+                else if (value == EnumCreateOrEdit.StatusCreate)
                 {
                     CreateBaseVisible = Visibility.Visible;
                     EditBaseVisible = Visibility.Collapsed;
@@ -102,28 +102,37 @@ namespace PDF_Office.ViewModels.EditTools.Background
         public DelegateCommand<object> ChangeCreateModCommand { get; set; }
         public DelegateCommand EnterTemplateListCommand { get; set; }
         public DelegateCommand SaveToTemplateListCommand { get; set; }
-        public DelegateCommand SaveToCurrentTemplateListCommand { get; set; }
+        public DelegateCommand SaveToCurrentTemplateListCommand { get; set; }
+
+        public string unicode = null;
+
+        public string Unicode = null;
 
         public BackgroundCreateBaseContentViewModel(IRegionManager regionManager, IEventAggregator eventAggregator)
         {
             this.eventAggregator = eventAggregator;
             this.backgroundCreateRegion = regionManager;
+            Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
             BackgroundCreateRegionName = Guid.NewGuid().ToString();
             ChangeCreateModCommand = new DelegateCommand<object>(ChangeCreateMod);
             EnterTemplateListCommand = new DelegateCommand(EnterTemplateList);
             SaveToTemplateListCommand = new DelegateCommand(SaveToTemplateList);
-            SaveToCurrentTemplateListCommand = new DelegateCommand(SaveToCurrentTemplateList); 
+            SaveToCurrentTemplateListCommand = new DelegateCommand(SaveToCurrentTemplateList);
         }
 
         public void SaveToTemplateList()
         {
             if (CurrentCreateModName == "BackgroundCreateColorContent")
             {
-                this.eventAggregator.GetEvent<SaveBackgroundTemplateEvent>().Publish(EnumColorOrFile.StatusColor);
+                this.eventAggregator.GetEvent<SaveBackgroundTemplateEvent>().Publish(new EnumColorOrFileUnicode { Unicode = Unicode, Status = EnumColorOrFile.StatusColor });
             }
             if (CurrentCreateModName == "BackgroundCreateFileContent")
             {
-                this.eventAggregator.GetEvent<SaveBackgroundTemplateEvent>().Publish(EnumColorOrFile.StatusFile);
+                this.eventAggregator.GetEvent<SaveBackgroundTemplateEvent>().Publish(new EnumColorOrFileUnicode
+                {
+                    Unicode = Unicode,
+                    Status = EnumColorOrFile.StatusFile
+                });
             }
         }
 
@@ -131,23 +140,26 @@ namespace PDF_Office.ViewModels.EditTools.Background
         {
             if (CurrentCreateModName == "BackgroundCreateColorContent")
             {
-                eventAggregator.GetEvent<ConfirmEditBackgroundTemplateItemEvent>().Publish(EnumColorOrFile.StatusColor);
+                eventAggregator.GetEvent<ConfirmEditBackgroundTemplateItemEvent>().Publish(new EnumColorOrFileUnicode {
+                    Unicode = Unicode, Status = EnumColorOrFile.StatusColor});
             }
             if (CurrentCreateModName == "BackgroundCreateFileContent")
             {
-                eventAggregator.GetEvent<ConfirmEditBackgroundTemplateItemEvent>().Publish(EnumColorOrFile.StatusFile);
+                eventAggregator.GetEvent<ConfirmEditBackgroundTemplateItemEvent>().Publish(new EnumColorOrFileUnicode {
+                    Unicode = Unicode, Status = EnumColorOrFile.StatusFile});
             }
         }
 
         public void EnterTemplateList()
         {
-            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusTemplate);
+            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode {Unicode = Unicode, Status = EnumTemplateListOrCreate.StatusTemplate});
         }
 
         public void EnterSelectedCreateMod(string currentCreateName)
         {
             NavigationParameters param = new NavigationParameters();
             param.Add(ParameterNames.PDFViewer, PDFViewer);
+            param.Add("UniCode", unicode);
             backgroundCreateRegion.RequestNavigate(BackgroundCreateRegionName, currentCreateName, param);
             backgroundCreateVisible = System.Windows.Visibility.Visible;
         }
@@ -159,6 +171,7 @@ namespace PDF_Office.ViewModels.EditTools.Background
             NavigationParameters param = new NavigationParameters();
             param.Add(ParameterNames.PDFViewer, PDFViewer);
             param.Add("BackgroundItem", BackgroundItem);
+            param.Add("UniCode", unicode);
             backgroundCreateRegion.RequestNavigate(BackgroundCreateRegionName, currentCreateName, param);
             backgroundCreateVisible = System.Windows.Visibility.Visible;
         }
@@ -168,17 +181,22 @@ namespace PDF_Office.ViewModels.EditTools.Background
             var args = e as Button;
             if (args != null)
             {
-                if(CreateOrEdit == EnumCreateOrEdit.StatusCreate)
+                if (CreateOrEdit == EnumCreateOrEdit.StatusCreate)
                 {
                     CurrentCreateModName = args.Name;
                     EnterSelectedCreateMod(CurrentCreateModName);
-                    eventAggregator.GetEvent<SetCurrentCreateModEvent>().Publish(CurrentCreateModName);
+                    eventAggregator.GetEvent<SetCurrentCreateModEvent>().Publish(new stringUnicode {
+                        Unicode = Unicode, Status = CurrentCreateModName});
                 }
                 else if (CreateOrEdit == EnumCreateOrEdit.StatusEdit)
                 {
                     CurrentCreateModName = args.Name;
                     EditSelectedTemplateItem(CurrentCreateModName);
-                    eventAggregator.GetEvent<SetCurrentCreateModEvent>().Publish(CurrentCreateModName);
+                    eventAggregator.GetEvent<SetCurrentCreateModEvent>().Publish(new stringUnicode
+                    {
+                        Unicode = Unicode,
+                        Status = CurrentCreateModName
+                    });
                 }
             }
         }
@@ -194,7 +212,8 @@ namespace PDF_Office.ViewModels.EditTools.Background
 
         public void OnNavigatedTo(NavigationContext navigationContext)
         {
-            navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
+            navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
+            navigationContext.Parameters.TryGetValue<string>("UniCode", out unicode);
             navigationContext.Parameters.TryGetValue<EnumColorOrFile>("CurrentTemplateListModName", out CurrentTemplateListMod);
             if (CurrentTemplateListMod == EnumColorOrFile.StatusColor)
             {
@@ -212,9 +231,13 @@ namespace PDF_Office.ViewModels.EditTools.Background
             else
             {
                 EnterSelectedCreateMod(CurrentCreateModName);
-                CreateOrEdit= EnumCreateOrEdit.StatusCreate;
+                CreateOrEdit = EnumCreateOrEdit.StatusCreate;
             }
-            eventAggregator.GetEvent<SetCurrentCreateModEvent>().Publish(CurrentCreateModName);
+            eventAggregator.GetEvent<SetCurrentCreateModEvent>().Publish(new stringUnicode
+            {
+                Unicode = Unicode,
+                Status = CurrentCreateModName
+            });
         }
     }
 }

+ 74 - 26
PDF Office/ViewModels/EditTools/Background/BackgroundCreateColorContentViewModel.cs

@@ -19,8 +19,9 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using System.Windows.Forms;
-using System.Windows.Media;
-
+using System.Windows.Media;
+using static System.Windows.Forms.VisualStyles.VisualStyleElement;
+
 namespace PDF_Office.ViewModels.EditTools.Background
 {
 
@@ -70,7 +71,11 @@ namespace PDF_Office.ViewModels.EditTools.Background
             {
                 SetProperty(ref _rotationValue, value);
                 BackgroundInfo.Rotation = value;
-                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(BackgroundInfo);
+                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(new BackgroundInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = BackgroundInfo
+                });
             }
         }
 
@@ -82,7 +87,11 @@ namespace PDF_Office.ViewModels.EditTools.Background
             {
                 SetProperty(ref _opacityValue, value);
                 BackgroundInfo.Opacity = (byte)(((float)value / 100) * 255);
-                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(BackgroundInfo);
+                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(new BackgroundInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = BackgroundInfo
+                });
             }
         }
 
@@ -105,7 +114,11 @@ namespace PDF_Office.ViewModels.EditTools.Background
             {
                 SetProperty(ref _verticalOffsetValue, value);
                 BackgroundInfo.VertOffset = float.Parse(VerticalOffsetValue);
-                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(BackgroundInfo);
+                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(new BackgroundInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = BackgroundInfo
+                });
             }
         }
 
@@ -117,10 +130,14 @@ namespace PDF_Office.ViewModels.EditTools.Background
             {
                 SetProperty(ref _horizontalOffset, value);
                 BackgroundInfo.HorizOffset = float.Parse(HorizontalOffsetValue);
-                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(BackgroundInfo);
+                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(new BackgroundInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = BackgroundInfo
+                });
             }
-        } 
-
+        }
+
         private ObservableDictionary<string, bool> _getLocationFromNumber = new ObservableDictionary<string, bool>();
         public ObservableDictionary<string, bool> GetLocationFromNumber
         {
@@ -140,7 +157,11 @@ namespace PDF_Office.ViewModels.EditTools.Background
             {
                 SetProperty(ref _color, value);
                 BackgroundInfo.Color = EditToolsHelper.ConvertColor(value);
-                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(BackgroundInfo);
+                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(new BackgroundInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = BackgroundInfo
+                });
             }
         }
 
@@ -152,7 +173,11 @@ namespace PDF_Office.ViewModels.EditTools.Background
             {
                 _pageRangeText = value;
                 EditToolsHelper.GetPageRange(PageRangeSelectIndex, PDFViewer.Document, ref BackgroundInfo.PageRange, PageRangeText);
-                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(BackgroundInfo);
+                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(new BackgroundInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = BackgroundInfo
+                });
             }
         }
 
@@ -167,7 +192,11 @@ namespace PDF_Office.ViewModels.EditTools.Background
             {
                 SetProperty(ref _pageRangeSelectIndex, value);
                 EditToolsHelper.GetPageRange(PageRangeSelectIndex, PDFViewer.Document, ref BackgroundInfo.PageRange, PageRangeText);
-                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(BackgroundInfo);
+                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(new BackgroundInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = BackgroundInfo
+                });
             }
         }
 
@@ -176,9 +205,13 @@ namespace PDF_Office.ViewModels.EditTools.Background
         public DelegateCommand<object> ChangeLocationCommand { get; set; }
         public DelegateCommand<object> ChangeColorCommand { get; set; }
 
+        public string unicode = null;
+        public string Unicode = null;
+
         public BackgroundCreateColorContentViewModel(IEventAggregator eventAggregator)
         {
-            this.eventAggregator = eventAggregator;
+            this.eventAggregator = eventAggregator;
+            Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
             ChangeLocationCommand = new DelegateCommand<object>(ChangeLocation);
             ChangeColorCommand = new DelegateCommand<object>(ChangeColor);
             BackgroundInfo.Color = EditToolsHelper.ConvertColor(Color.FromArgb(0xFF, 0xFF, 0x00, 0x00));
@@ -186,8 +219,8 @@ namespace PDF_Office.ViewModels.EditTools.Background
             BackgroundInfo.Horizalign = C_Background_Horizalign.BG_HORIZALIGN_CENTER;
             BackgroundInfo.Vertalign = C_Background_Vertalign.BG_VERTALIGN_CENTER;
             InitLocationButtonMatrix();
-            eventAggregator.GetEvent<SaveBackgroundTemplateEvent>().Subscribe(SaveBackgroundTemplate);
-            eventAggregator.GetEvent<ConfirmEditBackgroundTemplateItemEvent>().Subscribe(ConfirmEditBackgroundTemplateItem);
+            eventAggregator.GetEvent<SaveBackgroundTemplateEvent>().Subscribe(SaveBackgroundTemplate, e => e.Unicode == Unicode);
+            eventAggregator.GetEvent<ConfirmEditBackgroundTemplateItemEvent>().Subscribe(ConfirmEditBackgroundTemplateItem, e => e.Unicode == Unicode);
         }
 
         public void InitComponent()
@@ -246,7 +279,11 @@ namespace PDF_Office.ViewModels.EditTools.Background
             {
                 BackgroundInfo.Vertalign = (C_Background_Vertalign)(int.Parse(args) / 10);
                 BackgroundInfo.Horizalign = (C_Background_Horizalign)(int.Parse(args) % 10);
-                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(BackgroundInfo);
+                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(new BackgroundInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = BackgroundInfo
+                });
                 InitLocationButtonMatrix();
             }
         }
@@ -275,10 +312,10 @@ namespace PDF_Office.ViewModels.EditTools.Background
                 backgroundItem.horizalign = backgroundInfo.Horizalign;
                 backgroundItem.opacity = backgroundInfo.Opacity;
                 backgroundItem.rotation = backgroundInfo.Rotation;
-                backgroundItem.scale = backgroundInfo.Scale;
-                backgroundItem.pageRange = backgroundInfo.PageRange;
+                backgroundItem.scale = backgroundInfo.Scale;
+                //  backgroundItem.pagRangeMode = backgroundInfo.PageRange;
             }
-            //  backgroundItem.pagRangeMode = backgroundInfo.PageRange;
+
         }
 
         public void SaveCurrentTemplate()
@@ -288,12 +325,16 @@ namespace PDF_Office.ViewModels.EditTools.Background
             backgroundItem.templateName += Settings.Default.WatermarkIndex.ToString();
             Settings.Default.BackgroundTemplateList.Add(backgroundItem);
             Settings.Default.Save();
-            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusTemplate);
+            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode
+            {
+                Unicode = Unicode,
+                Status = EnumTemplateListOrCreate.StatusTemplate
+            });
         }
 
         public void ConvertItemToInfo(BackgroundItem backgroundItem, ref BackgroundInfo backgroundInfo)
         {
-            if(backgroundItem != null)
+            if (backgroundItem != null)
             {
                 backgroundInfo.BackgroundType = backgroundItem.type;
                 backgroundInfo.Color = backgroundItem.bgColor;
@@ -317,21 +358,27 @@ namespace PDF_Office.ViewModels.EditTools.Background
             //TODO
         }
 
-        public void ConfirmEditBackgroundTemplateItem(EnumColorOrFile enumColorOrFile)
+        public void ConfirmEditBackgroundTemplateItem(EnumColorOrFileUnicode enumColorOrFileunicode)
         {
-            if(enumColorOrFile == EnumColorOrFile.StatusColor)
+            EnumColorOrFile enumColorOrFile = enumColorOrFileunicode.Status;
+            if (enumColorOrFile == EnumColorOrFile.StatusColor)
             {
                 var backgroundItem = new BackgroundItem();
                 ConvertInfoToItem(ref backgroundItem, BackgroundInfo);
                 Settings.Default.BackgroundTemplateList[TemplateBackgroundItem.listIndex] = backgroundItem;
                 Settings.Default.Save();
-                this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusTemplate);
+                this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode
+                {
+                    Unicode = Unicode,
+                    Status = EnumTemplateListOrCreate.StatusTemplate
+                });
             }
         }
 
 
-        public void SaveBackgroundTemplate(EnumColorOrFile enumColorOrFile)
+        public void SaveBackgroundTemplate(EnumColorOrFileUnicode enumColorOrFileunicode)
         {
+            EnumColorOrFile enumColorOrFile = enumColorOrFileunicode.Status;
             if (enumColorOrFile == EnumColorOrFile.StatusColor)
             {
                 SaveCurrentTemplate();
@@ -348,8 +395,9 @@ namespace PDF_Office.ViewModels.EditTools.Background
 
         public void OnNavigatedTo(NavigationContext navigationContext)
         {
-            navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
-            if(navigationContext.Parameters.TryGetValue<BackgroundItem>("BackgroundItem", out TemplateBackgroundItem))
+            navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
+            navigationContext.Parameters.TryGetValue<string>("UniCode", out unicode);
+            if (navigationContext.Parameters.TryGetValue<BackgroundItem>("BackgroundItem", out TemplateBackgroundItem))
             {
                 InitComponentBySelectedInfo();
             }

+ 52 - 14
PDF Office/ViewModels/EditTools/Background/BackgroundCreateFileContentViewModel.cs

@@ -66,7 +66,11 @@ namespace PDF_Office.ViewModels.EditTools.Background
             {
                 SetProperty(ref _rotationValue, value);
                 BackgroundInfo.Rotation = ((float)RotationValue / 180) * 3.1415926f;
-                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(BackgroundInfo);
+                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(new BackgroundInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = BackgroundInfo
+                });
             }
         }
 
@@ -79,7 +83,11 @@ namespace PDF_Office.ViewModels.EditTools.Background
             {
                 SetProperty(ref _opacityValue, value);
                 BackgroundInfo.Opacity = (byte)(((float)OpacityValue / 100) * 225);
-                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(BackgroundInfo);
+                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(new BackgroundInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = BackgroundInfo
+                });
             }
         }
 
@@ -98,7 +106,11 @@ namespace PDF_Office.ViewModels.EditTools.Background
             {
                 SetProperty(ref _verticalOffsetValue, value);
                 BackgroundInfo.VertOffset = float.Parse(VerticalOffsetValue);
-                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(BackgroundInfo);
+                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(new BackgroundInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = BackgroundInfo
+                });
             }
         }
 
@@ -110,7 +122,11 @@ namespace PDF_Office.ViewModels.EditTools.Background
             {
                 SetProperty(ref _horizOffsetValue, value);
                 BackgroundInfo.HorizOffset = float.Parse(HorizontalOffsetValue);
-                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(BackgroundInfo);
+                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(new BackgroundInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = BackgroundInfo
+                });
             }
         }
 
@@ -150,10 +166,13 @@ namespace PDF_Office.ViewModels.EditTools.Background
         public DelegateCommand OpenFileCommand { get; set; }
         public DelegateCommand<object> ChangeLocationCommand { get; set; }
 
+        public string unicode = null;
+        public string Unicode = null;
 
         public BackgroundCreateFileContentViewModel(IEventAggregator eventAggregator)
         {
             this.eventAggregator = eventAggregator;
+            Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
             BackgroundInfo.BackgroundType = C_Background_Type.BG_TYPE_IMAGE;
             ChangeLocationCommand = new DelegateCommand<object>(ChangeLocation);
             InitComponent();
@@ -161,8 +180,8 @@ namespace PDF_Office.ViewModels.EditTools.Background
             BackgroundInfo.Vertalign = C_Background_Vertalign.BG_VERTALIGN_CENTER;
             InitLocationButtonMatrix();
             OpenFileCommand = new DelegateCommand(OpenFile);
-            eventAggregator.GetEvent<SaveBackgroundTemplateEvent>().Subscribe(SaveBackgroundTemplate);
-            eventAggregator.GetEvent<ConfirmEditBackgroundTemplateItemEvent>().Subscribe(ConfirmEditBackgroundTemplateItem);
+            eventAggregator.GetEvent<SaveBackgroundTemplateEvent>().Subscribe(SaveBackgroundTemplate, e => e.Unicode == Unicode);
+            eventAggregator.GetEvent<ConfirmEditBackgroundTemplateItemEvent>().Subscribe(ConfirmEditBackgroundTemplateItem, e => e.Unicode == Unicode);
 
 
         }
@@ -243,7 +262,11 @@ namespace PDF_Office.ViewModels.EditTools.Background
             {
                 BackgroundInfo.Vertalign = (C_Background_Vertalign)(int.Parse(args) / 10);
                 BackgroundInfo.Horizalign = (C_Background_Horizalign)(int.Parse(args) % 10);
-                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(BackgroundInfo);
+                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(new BackgroundInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = BackgroundInfo
+                });
                 InitLocationButtonMatrix();
             }
         }
@@ -266,7 +289,11 @@ namespace PDF_Office.ViewModels.EditTools.Background
                     EditToolsHelper.ChooseFile(dlg.FileName, ref BackgroundInfo);
                 }
                 CreateModFileVisible = Visibility.Visible;
-                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(BackgroundInfo);
+                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(new BackgroundInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = BackgroundInfo
+                });
             }
         }
 
@@ -299,7 +326,7 @@ namespace PDF_Office.ViewModels.EditTools.Background
             backgroundItem.opacity = backgroundInfo.Opacity;
             backgroundItem.rotation = backgroundInfo.Rotation;
             backgroundItem.scale = backgroundInfo.Scale;
-            //  backgroundItem.pagRangeMode = backgroundInfo.PageRange;
+            //backgroundItem.pagRangeMode = backgroundInfo.PageRange;
         }
 
         public void SaveCurrentTemplate()
@@ -309,24 +336,34 @@ namespace PDF_Office.ViewModels.EditTools.Background
             backgroundItem.templateName += Settings.Default.WatermarkIndex.ToString();
             Settings.Default.BackgroundTemplateList.Add(backgroundItem);
             Settings.Default.Save();
-            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusTemplate);
+            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode
+            {
+                Unicode = Unicode,
+                Status = EnumTemplateListOrCreate.StatusTemplate
+            });
         }
 
-        public void ConfirmEditBackgroundTemplateItem(EnumColorOrFile enumColorOrFile)
+        public void ConfirmEditBackgroundTemplateItem(EnumColorOrFileUnicode enumColorOrFileunicode)
         {
+            EnumColorOrFile enumColorOrFile = enumColorOrFileunicode.Status;
             if (enumColorOrFile == EnumColorOrFile.StatusFile)
             {
                 var backgroundItem = new BackgroundItem();
                 ConvertInfoToItem(ref backgroundItem, BackgroundInfo);
                 Settings.Default.BackgroundTemplateList[TemplateBackgroundItem.listIndex] = backgroundItem;
                 Settings.Default.Save();
-                this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusTemplate);
+                this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode
+                {
+                    Unicode = Unicode,
+                    Status = EnumTemplateListOrCreate.StatusTemplate
+                });
             }
         }
 
 
-        public void SaveBackgroundTemplate(EnumColorOrFile enumColorOrFile)
+        public void SaveBackgroundTemplate(EnumColorOrFileUnicode enumColorOrFileunicode)
         {
+            EnumColorOrFile enumColorOrFile = enumColorOrFileunicode.Status;
             if (enumColorOrFile == EnumColorOrFile.StatusFile)
             {
                 SaveCurrentTemplate();
@@ -343,7 +380,8 @@ namespace PDF_Office.ViewModels.EditTools.Background
 
         public void OnNavigatedTo(NavigationContext navigationContext)
         {
-            navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
+            navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
+            navigationContext.Parameters.TryGetValue<string>("UniCode", out unicode);
             if (navigationContext.Parameters.TryGetValue<BackgroundItem>("BackgroundItem", out TemplateBackgroundItem))
             {
                 InitComponentBySelectedInfo();

+ 10 - 5
PDF Office/ViewModels/EditTools/Background/BackgroundDocumentContentViewModel.cs

@@ -41,14 +41,18 @@ namespace PDF_Office.ViewModels.EditTools.Background
 
         public bool firstin = true;
 
-        public string ViewerRegionName { get; set; }
+        public string ViewerRegionName { get; set; }
+
+        public string unicode = null;
+        public string Unicode = null;
 
         public BackgroundDocumentContentViewModel(IEventAggregator eventAggregator, IRegionManager regionManager)
         {
             this.regionManager = regionManager;
             this.eventAggregator = eventAggregator;
+            Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
             eventAggregator.GetEvent<ConfirmEditToolsBackgroundEvent>().Subscribe(ConfirmEditToolsBackground);
-            eventAggregator.GetEvent<SetBackgroundEvent>().Subscribe(SetBackground);
+            eventAggregator.GetEvent<SetBackgroundEvent>().Subscribe(SetBackground, e => e.Unicode == Unicode);
             ViewerRegionName = RegionNames.BackgroundViewRegionName;
         }
 
@@ -60,8 +64,9 @@ namespace PDF_Office.ViewModels.EditTools.Background
             }
         }
 
-        public void SetBackground(BackgroundInfo backgroundInfo)
+        public void SetBackground(BackgroundInfoUnicode backgroundInfounicode)
         {
+            BackgroundInfo backgroundInfo=backgroundInfounicode.Status;
             this.backgroundInfo = backgroundInfo;
             CreateBackground(PDFViewer.Document);
             PDFViewer.InvalidChildVisual(false);
@@ -159,8 +164,8 @@ namespace PDF_Office.ViewModels.EditTools.Background
         public void OnNavigatedTo(NavigationContext navigationContext)
         {
             navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out pdfViewer);
-            navigationContext.Parameters.TryGetValue<ViewContentViewModel>(ParameterNames.ViewContentViewModel, out viewContentViewModel);
-
+            navigationContext.Parameters.TryGetValue<ViewContentViewModel>(ParameterNames.ViewContentViewModel, out viewContentViewModel);
+            navigationContext.Parameters.TryGetValue<string>("UniCode", out unicode);
             if (pdfViewer != null)
             {
                 if (!regionManager.Regions[ViewerRegionName].Views.Contains(PDFViewer))

+ 22 - 7
PDF Office/ViewModels/EditTools/Background/BackgroundTemplateListBaseContentViewModel.cs

@@ -1,5 +1,7 @@
-using Dropbox.Api.FileProperties;
+using ComPDFKitViewer.PdfViewer;
+using Dropbox.Api.FileProperties;
 using PDF_Office.EventAggregators;
+using PDF_Office.Model;
 using Prism.Commands;
 using Prism.Events;
 using Prism.Mvvm;
@@ -56,12 +58,16 @@ namespace PDF_Office.ViewModels.EditTools.Background
         }
 
         public DelegateCommand<object> ChangeTemplateListModCommand { get; set; }
-        public DelegateCommand EnterCreateCommand { get; set; }
+        public DelegateCommand EnterCreateCommand { get; set; }
+
+        public string unicode = null;
+        public string Unicode = null;
 
         public BackgroundTemplateListBaseContentViewModel(IRegionManager backgroundTemplateListRegion, IEventAggregator eventAggregator)
         {
             this.backgroundTemplateListRegion = backgroundTemplateListRegion;
             this.eventAggregator = eventAggregator;
+            Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
             BackgroundTemplateListRegionName = Guid.NewGuid().ToString();
             ChangeTemplateListModCommand = new DelegateCommand<object>(ChangeTemplateListMod);
             EnterCreateCommand = new DelegateCommand(EnterCreate);
@@ -69,11 +75,13 @@ namespace PDF_Office.ViewModels.EditTools.Background
 
         public void EnterCreate()
         {
-            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusCreate);
+            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode {Unicode=Unicode,Status= EnumTemplateListOrCreate.StatusCreate });
         }
 
         public void EnterSelectedTemplateListMod(string currentTemplateListName)
-        {
+        {
+            NavigationParameters param = new NavigationParameters();
+            param.Add("UniCode", unicode);
             backgroundTemplateListRegion.RequestNavigate(BackgroundTemplateListRegionName, currentTemplateListName);
             backgroundTemplateListVisible = System.Windows.Visibility.Visible;
         }
@@ -85,7 +93,8 @@ namespace PDF_Office.ViewModels.EditTools.Background
             {
                 CurrentTemplateListModName = args.Name;
                 EnterSelectedTemplateListMod(CurrentTemplateListModName);
-                eventAggregator.GetEvent<SetCurrentTemplateListModEvent>().Publish(CurrentTemplateListModName);
+                eventAggregator.GetEvent<SetCurrentTemplateListModEvent>().Publish(new stringUnicode {
+                    Unicode = Unicode,Status = CurrentTemplateListModName});
             }
         }
 
@@ -99,7 +108,9 @@ namespace PDF_Office.ViewModels.EditTools.Background
         }
 
         public void OnNavigatedTo(NavigationContext navigationContext)
-        {
+        {
+
+            navigationContext.Parameters.TryGetValue<string>("UniCode", out unicode);
             if (IsFirstEnter)
             {
                 CurrentTemplateListModName = BackgroundTemplateListColorContentName;
@@ -118,7 +129,11 @@ namespace PDF_Office.ViewModels.EditTools.Background
                     CurrentTemplateListModName = "BackgroundTemplateListFileContent";
                 }
                 EnterSelectedTemplateListMod(CurrentTemplateListModName);
-                eventAggregator.GetEvent<SetCurrentTemplateListModEvent>().Publish(CurrentTemplateListModName);
+                eventAggregator.GetEvent<SetCurrentTemplateListModEvent>().Publish(new stringUnicode
+                {
+                    Unicode = Unicode,
+                    Status = CurrentTemplateListModName
+                });
 
             }
         }

+ 31 - 10
PDF Office/ViewModels/EditTools/Background/BackgroundTemplateListColorContentViewModel.cs

@@ -14,8 +14,9 @@ using System.Security.Permissions;
 using System.Text;
 using System.Threading.Tasks;
 using System.Windows;
-using System.Windows.Controls;
-
+using System.Windows.Controls;
+using static System.Windows.Forms.VisualStyles.VisualStyleElement;
+
 namespace PDF_Office.ViewModels.EditTools.Background
 {
 
@@ -48,9 +49,14 @@ namespace PDF_Office.ViewModels.EditTools.Background
         public DelegateCommand<object> DeleteTemplateItemCommand { get; set; }
         public DelegateCommand<object> EditTemplateItemCommand { get; set; }
         public DelegateCommand DeleteAllTemplateItemCommand { get; set; }
-        public DelegateCommand<object> SelectTemplateItemCommand { get; set; }
-        BackgroundTemplateListColorContentViewModel(IEventAggregator eventAggregator)
+        public DelegateCommand<object> SelectTemplateItemCommand { get; set; }
+
+        public string unicode = null;
+        public string Unicode = null;
+
+        public BackgroundTemplateListColorContentViewModel(IEventAggregator eventAggregator)
         {
+            Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
             this.eventAggregator = eventAggregator;
             AddTemplateCommand = new DelegateCommand(AddTemplate);
             EditTemplateItemCommand = new DelegateCommand<object>(RequestEditTemplateItem);
@@ -58,7 +64,7 @@ namespace PDF_Office.ViewModels.EditTools.Background
             DeleteAllTemplateItemCommand = new DelegateCommand(DeleteAllTemplateItem);
             SelectTemplateItemCommand = new DelegateCommand<object>(SelectTemplateItem);
 
-            eventAggregator.GetEvent<SaveEditedBackgroundTemplateItemEvent>().Subscribe(SaveEditedBackgroundTemplateItem);
+            eventAggregator.GetEvent<SaveEditedBackgroundTemplateItemEvent>().Subscribe(SaveEditedBackgroundTemplateItem, e => e.Unicode == Unicode);
         }
 
         private void CheckTemplateListIsEmpty(List<BackgroundItem> backgroundTemplateList)
@@ -98,11 +104,16 @@ namespace PDF_Office.ViewModels.EditTools.Background
 
         public void AddTemplate()
         {
-            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusCreate);
+            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode
+            {
+                Unicode = Unicode,
+                Status = EnumTemplateListOrCreate.StatusCreate
+            });
         }
 
-        public void SaveEditedBackgroundTemplateItem(BackgroundItem backgroundItem)
+        public void SaveEditedBackgroundTemplateItem(BackgroundItemUnicode backgroundItemunicode)
         {
+            BackgroundItem backgroundItem = backgroundItemunicode.Status;
             if (backgroundItem.type == ComPDFKit.PDFDocument.C_Background_Type.BG_TYPE_COLOR)
             {
                 Settings.Default.BackgroundTemplateList[TemplateIndex] = backgroundItem;
@@ -127,7 +138,11 @@ namespace PDF_Office.ViewModels.EditTools.Background
             TemplateIndex = Settings.Default.BackgroundTemplateList.IndexOf(template);
             template.listIndex = TemplateIndex;
             ConvertItemToInfo(template, ref BackgroundInfo);
-            this.eventAggregator.GetEvent<EditBackgroundTemplateItemEvent>().Publish(template);
+            this.eventAggregator.GetEvent<EditBackgroundTemplateItemEvent>().Publish(new BackgroundItemUnicode
+            {
+                Unicode = Unicode,
+                Status = template
+            });
         }
 
 
@@ -190,7 +205,11 @@ namespace PDF_Office.ViewModels.EditTools.Background
             if (template != null)
             {
                 ConvertItemToInfo(template, ref BackgroundInfo);
-                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(BackgroundInfo);
+                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(new BackgroundInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = BackgroundInfo
+                });
             }
 
         }
@@ -214,7 +233,9 @@ namespace PDF_Office.ViewModels.EditTools.Background
         }
 
         public void OnNavigatedTo(NavigationContext navigationContext)
-        {
+        {
+
+            navigationContext.Parameters.TryGetValue<string>("UniCode", out unicode);
             InitBackgroundTemplateList();
         }
     }

+ 27 - 9
PDF Office/ViewModels/EditTools/Background/BackgroundTemplateListFileContentViewModel.cs

@@ -47,10 +47,14 @@ namespace PDF_Office.ViewModels.EditTools.Background
         public DelegateCommand<object> DeleteTemplateItemCommand { get; set; }
         public DelegateCommand <object> EditTemplateItemCommand { get; set; }
         public DelegateCommand DeleteAllTemplateItemCommand{ get; set; }
-        public DelegateCommand<object> SelectTemplateItemCommand { get; set; }
+        public DelegateCommand<object> SelectTemplateItemCommand { get; set; }
+
+        public string unicode = null;
+        public string Unicode = null;
 
-        BackgroundTemplateListFileContentViewModel(IEventAggregator eventAggregator)
+        public BackgroundTemplateListFileContentViewModel(IEventAggregator eventAggregator)
         {
+            Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
             this.eventAggregator = eventAggregator;
             AddTemplateCommand = new DelegateCommand(AddTemplate);
             EditTemplateItemCommand = new DelegateCommand<object>(RequestEditTemplateItem);
@@ -58,7 +62,7 @@ namespace PDF_Office.ViewModels.EditTools.Background
             DeleteAllTemplateItemCommand = new DelegateCommand(DeleteAllTemplateItem);
             SelectTemplateItemCommand = new DelegateCommand<object>(SelectTemplateItem);
 
-            eventAggregator.GetEvent<SaveEditedBackgroundTemplateItemEvent>().Subscribe(SaveEditedBackgroundTemplateItem);
+            eventAggregator.GetEvent<SaveEditedBackgroundTemplateItemEvent>().Subscribe(SaveEditedBackgroundTemplateItem, e => e.Unicode == Unicode);
 
         }
 
@@ -101,11 +105,16 @@ namespace PDF_Office.ViewModels.EditTools.Background
 
         public void AddTemplate()
         {
-            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusCreate);
+            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode
+            {
+                Unicode = Unicode,
+                Status = EnumTemplateListOrCreate.StatusCreate
+            });
         }
 
-        public void SaveEditedBackgroundTemplateItem(BackgroundItem backgroundItem)
+        public void SaveEditedBackgroundTemplateItem(BackgroundItemUnicode backgroundItemunicode)
         {
+            BackgroundItem backgroundItem = backgroundItemunicode.Status;
             if (backgroundItem.type == ComPDFKit.PDFDocument.C_Background_Type.BG_TYPE_IMAGE)
             {
                 Settings.Default.BackgroundTemplateList[TemplateIndex] = backgroundItem;
@@ -128,8 +137,11 @@ namespace PDF_Office.ViewModels.EditTools.Background
             }
             TemplateIndex = Settings.Default.BackgroundTemplateList.IndexOf(template);
             template.listIndex = TemplateIndex;
-            ConvertItemToInfo(template, ref BackgroundInfo);
-            this.eventAggregator.GetEvent<EditBackgroundTemplateItemEvent>().Publish(BackgroundItem);
+            this.eventAggregator.GetEvent<EditBackgroundTemplateItemEvent>().Publish(new BackgroundItemUnicode
+            {
+                Unicode = Unicode,
+                Status = template
+            });
         }
 
         public void DeleteTemplateItem(object e)
@@ -194,7 +206,11 @@ namespace PDF_Office.ViewModels.EditTools.Background
         public void SendTemplateItemToDocument(BackgroundItem BackgroundItem)
         {
             ConvertItemToInfo(BackgroundItem, ref BackgroundInfo);
-            eventAggregator.GetEvent<SetBackgroundEvent>().Publish(BackgroundInfo);
+            eventAggregator.GetEvent<SetBackgroundEvent>().Publish(new BackgroundInfoUnicode
+            {
+                Unicode = Unicode,
+                Status = BackgroundInfo
+            });
         }
 
         public void SelectTemplateItem(object e)
@@ -214,7 +230,9 @@ namespace PDF_Office.ViewModels.EditTools.Background
         }
 
         public void OnNavigatedTo(NavigationContext navigationContext)
-        {
+        {
+
+            navigationContext.Parameters.TryGetValue<string>("UniCode", out unicode);
             InitBackgroundTemplateList();
         }
     }

+ 28 - 16
PDF Office/ViewModels/EditTools/Watermark/WatermarkContentViewModel.cs

@@ -4,6 +4,8 @@ using PDF_Office.EventAggregators;
 using PDF_Office.Model;
 using PDF_Office.Model.EditTools.Background;
 using PDF_Office.Model.EditTools.Watermark;
+using PDF_Office.ViewModels.Tools;
+using PDFSettings;
 using Prism.Commands;
 using Prism.Events;
 using Prism.Mvvm;
@@ -12,6 +14,7 @@ using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Windows;
+using static System.Windows.Forms.VisualStyles.VisualStyleElement;
 
 namespace PDF_Office.ViewModels.EditTools.Watermark
 {
@@ -92,10 +95,13 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
 
         public DelegateCommand<string> EnterSelectedContentCommand { get; set; }
 
+        public string Unicode = null;
+
         public WatermarkContentViewModel(IRegionManager regionManager, IEventAggregator eventAggregator)
         {
             this.eventAggregator = eventAggregator;
             this.watermarkRegion = regionManager;
+            Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
             WatermarkSettingsVisible = Visibility.Visible;
             WatermarkSettingsRegionName = Guid.NewGuid().ToString();
             WatermarkDocumentRegionName = Guid.NewGuid().ToString();
@@ -104,32 +110,33 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             EnterSelectedContentCommand = new DelegateCommand<string>(EnterSelectedContent);
             DeleteWatermarkCommand = new DelegateCommand(DeleteWatermark);
 
-            eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Subscribe(EnterTemplateListOrCreate);
-            eventAggregator.GetEvent<SetCurrentCreateModEvent>().Subscribe(SetCurrentCreateMod);
-            eventAggregator.GetEvent<SetCurrentTemplateListModEvent>().Subscribe(SetCurrentTemplateListMod);
-            eventAggregator.GetEvent<CurrentWatermarkPDFViewerEvent>().Subscribe(CurrentWatermarkPDFViewer);
-            eventAggregator.GetEvent<EditWatermarkTemplateItemEvent>().Subscribe(EditWatermarkTemplateItem);
+            eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Subscribe(EnterTemplateListOrCreate, e => e.Unicode == Unicode);
+            eventAggregator.GetEvent<SetCurrentCreateModEvent>().Subscribe(SetCurrentCreateMod, e => e.Unicode == Unicode);
+            eventAggregator.GetEvent<SetCurrentTemplateListModEvent>().Subscribe(SetCurrentTemplateListMod, e => e.Unicode == Unicode);
+            eventAggregator.GetEvent<CurrentWatermarkPDFViewerEvent>().Subscribe(CurrentWatermarkPDFViewer, e => e.Unicode == Unicode);
+            eventAggregator.GetEvent<EditWatermarkTemplateItemEvent>().Subscribe(EditWatermarkTemplateItem, e => e.Unicode == Unicode);
 
         }
-        public void CurrentWatermarkPDFViewer(CPDFViewer cPDFViewer)
+        public void CurrentWatermarkPDFViewer(CPDFViewerUnicode cPDFViewerunicod)
         {
-            CurrentPDFViewer = cPDFViewer;
+            CurrentPDFViewer = cPDFViewerunicod.Status;
 
         }
         public void CloseEditTool()
         {
-            this.eventAggregator.GetEvent<CloseEditToolEvent>().Publish(EnumCloseMode.StatusCancel);
+            this.eventAggregator.GetEvent<CloseEditToolEvent>().Publish(new EnumCloseModeUnicode { Unicode = Unicode, Status = EnumCloseMode.StatusCancel });
 
         }
 
         public void ConfirmEditTool()
         {
             this.eventAggregator.GetEvent<ConfirmEditToolsWatermarkEvent>().Publish();
-            this.eventAggregator.GetEvent<CloseEditToolEvent>().Publish(EnumCloseMode.StatusConfirm);
+            this.eventAggregator.GetEvent<CloseEditToolEvent>().Publish(new EnumCloseModeUnicode { Unicode = Unicode, Status = EnumCloseMode.StatusConfirm });
         }
 
-        public void EnterTemplateListOrCreate(EnumTemplateListOrCreate enumTemplateListOrCreate)
+        public void EnterTemplateListOrCreate(EnumTemplateListOrCreateUnicode enumTemplateListOrCreateunicode)
         {
+            EnumTemplateListOrCreate enumTemplateListOrCreate = enumTemplateListOrCreateunicode.Status;
             if (enumTemplateListOrCreate == EnumTemplateListOrCreate.StatusTemplate)
             {
                 EnterSelectedContent(TemplateListName);
@@ -140,18 +147,20 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             }
         }
 
-        public void EditWatermarkTemplateItem(WatermarkInfo watermarkInfo)
+        public void EditWatermarkTemplateItem(WatermarkItemUnicode watermarkItemunicode)
         {
+            WatermarkItem watermarkItem = watermarkItemunicode.Status;
             NavigationParameters param = new NavigationParameters();
             param.Add(ParameterNames.PDFViewer, PDFViewer);
             param.Add("CurrentTemplateListModName", CurrentTemplateListMod);
-            param.Add("WatermarkInfo", watermarkInfo);
+            param.Add("WatermarkItem", watermarkItem);
             watermarkRegion.RequestNavigate(WatermarkSettingsRegionName, CreateBaseName, param);
             WatermarkSettingsVisible = Visibility.Visible;
         }
 
-        public void SetCurrentCreateMod(string currentCreateModName)
+        public void SetCurrentCreateMod(stringUnicode currentCreateModNameunicode)
         {
+            string currentCreateModName = currentCreateModNameunicode.Status;
             if (currentCreateModName == CreateModTextName)
             {
                 CurrentCreateMod = EnumTextOrFile.StatusText;
@@ -162,8 +171,9 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             }
         }
 
-        public void SetCurrentTemplateListMod(string currentTemplateListModName)
+        public void SetCurrentTemplateListMod(stringUnicode currentTemplateListModNameunicode)
         {
+            string currentTemplateListModName = currentTemplateListModNameunicode.Status;
             if (currentTemplateListModName == TemplateListModTextName)
             {
                 CurrentTemplateListMod = EnumTextOrFile.StatusText;
@@ -206,11 +216,13 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
                 alertsMessage.ShowDialog("确定要删除文件水印吗?", "", "取消", "删除");
                 if (alertsMessage.result == ContentResult.Ok)
                 {
-                    this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(EnumDelete.StatusDeleteAll);
+                    this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(new EnumDeleteUnicode {
+                        Unicode = Unicode, Status = EnumDelete.StatusDeleteAll});
                 }
                 else
                 {
-                    this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(EnumDelete.StatusCreate);
+                    this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(new EnumDeleteUnicode {
+                            Unicode = Unicode, Status = EnumDelete.StatusCreate});
                 }
             }
             else {

+ 85 - 23
PDF Office/ViewModels/EditTools/Watermark/WatermarkCreateBaseContentViewModel.cs

@@ -3,6 +3,7 @@ using PDF_Office.EventAggregators;
 using PDF_Office.Model;
 using PDF_Office.Model.EditTools.Background;
 using PDF_Office.Model.EditTools.Watermark;
+using PDFSettings;
 using Prism.Commands;
 using Prism.Events;
 using Prism.Mvvm;
@@ -12,6 +13,7 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Windows;
 using System.Windows.Controls;
+using static PDF_Office.ViewModels.EditTools.Background.BackgroundCreateBaseContentViewModel;
 
 namespace PDF_Office.ViewModels.EditTools.Watermark
 {
@@ -22,7 +24,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
 
         private CPDFViewer PDFViewer;
 
-        public WatermarkInfo WatermarkInfo;
+        public WatermarkItem WatermarkItem;
 
         public EnumTextOrFile CurrentTemplateListMod;
 
@@ -34,13 +36,6 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             set => SetProperty(ref watermarkCreateRegionName, value);
         }
 
-        private string _currentCreateName;
-        public string CurrentCreateName
-        {
-            get => _currentCreateName;
-            set => _currentCreateName = value;
-        }
-
         private string _currentCreateModName;
         public string CurrentCreateModName
         {
@@ -48,6 +43,35 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             set => _currentCreateModName = value;
         }
 
+   
+
+        public enum EnumCreateOrEdit
+        {
+            None,
+            StatusCreate,
+            StatusEdit
+        }
+
+        private EnumCreateOrEdit _createOrEdit;
+        public EnumCreateOrEdit CreateOrEdit
+        {
+            get { return _createOrEdit; }
+            set
+            {
+                _createOrEdit = value;
+                if (value == EnumCreateOrEdit.StatusEdit)
+                {
+                    EditBaseVisible = Visibility.Visible;
+                    CreateBaseVisible = Visibility.Collapsed;
+                }
+                else if (value == EnumCreateOrEdit.StatusCreate)
+                {
+                    CreateBaseVisible = Visibility.Visible;
+                    EditBaseVisible = Visibility.Collapsed;
+                }
+            }
+        }
+
         private Visibility watermarkCreateVisible;
         public Visibility WatermarkCreateVisible
         {
@@ -77,10 +101,13 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
 
         public DelegateCommand SaveToCurrentTemplateListCommand { get; set; }
 
+        public string Unicode = null;
+
         public WatermarkCreateBaseContentViewModel(IRegionManager regionManager, IEventAggregator eventAggregator)
         {
             this.eventAggregator = eventAggregator;
             this.watermarkCreateRegion = regionManager;
+            Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
             WatermarkCreateRegionName = Guid.NewGuid().ToString();
             ChangeCreateModCommand = new DelegateCommand<object>(ChangeCreateMod);
             EnterTemplateListCommand = new DelegateCommand(EnterTemplateList);
@@ -94,11 +121,19 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         {
             if (CurrentCreateModName == "WatermarkCreateTextContent")
             {
-                this.eventAggregator.GetEvent<SaveWatermarkTemplateEvent>().Publish(EnumTextOrFile.StatusText);
+                this.eventAggregator.GetEvent<SaveWatermarkTemplateEvent>().Publish(new EnumTextOrFileUnicode
+                {
+                    Unicode = Unicode,
+                    Status = EnumTextOrFile.StatusText
+                });
             }
             if (CurrentCreateModName == "WatermarkCreateFileContent")
             {
-                this.eventAggregator.GetEvent<SaveWatermarkTemplateEvent>().Publish(EnumTextOrFile.StatusFile);
+                this.eventAggregator.GetEvent<SaveWatermarkTemplateEvent>().Publish(new EnumTextOrFileUnicode
+                {
+                    Unicode = Unicode,
+                    Status = EnumTextOrFile.StatusFile
+                });
             }
         }
 
@@ -106,17 +141,25 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         {
             if (CurrentCreateModName == "WatermarkCreateTextContent")
             {
-                eventAggregator.GetEvent<ConfirmEditWatermarkTemplateItemEvent>().Publish(EnumTextOrFile.StatusText);
+                eventAggregator.GetEvent<ConfirmEditWatermarkTemplateItemEvent>().Publish(new EnumTextOrFileUnicode
+                {
+                    Unicode = Unicode,
+                    Status = EnumTextOrFile.StatusText
+                });
             }
             if (CurrentCreateModName == "WatermarkCreateFileContent")
             {
-                eventAggregator.GetEvent<ConfirmEditWatermarkTemplateItemEvent>().Publish(EnumTextOrFile.StatusFile);
+                eventAggregator.GetEvent<ConfirmEditWatermarkTemplateItemEvent>().Publish(new EnumTextOrFileUnicode
+                {
+                    Unicode = Unicode,
+                    Status = EnumTextOrFile.StatusFile
+                });
             }
         }
 
         public void EnterTemplateList()
         {
-            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusTemplate);
+            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode { Unicode = Unicode, Status = EnumTemplateListOrCreate.StatusTemplate });
         }
 
         public void EnterSelectedCreateMod(string currentCreateName)
@@ -131,7 +174,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         {
             NavigationParameters param = new NavigationParameters();
             param.Add(ParameterNames.PDFViewer, PDFViewer);
-            param.Add("WatermarkInfo", WatermarkInfo);
+            param.Add("WatermarkItem", WatermarkItem);
             watermarkCreateRegion.RequestNavigate(WatermarkCreateRegionName, currentCreateName, param);
             watermarkCreateVisible = System.Windows.Visibility.Visible;
         }
@@ -141,9 +184,26 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             var args = e as Button;
             if (args != null)
             {
-                CurrentCreateName = args.Name;
-                EnterSelectedCreateMod(CurrentCreateName);
-                eventAggregator.GetEvent<SetCurrentCreateModEvent>().Publish(CurrentCreateName);
+                if (CreateOrEdit == EnumCreateOrEdit.StatusCreate)
+                {
+                    CurrentCreateModName = args.Name;
+                    EnterSelectedCreateMod(CurrentCreateModName);
+                    eventAggregator.GetEvent<SetCurrentCreateModEvent>().Publish(new stringUnicode
+                    {
+                        Unicode = Unicode,
+                        Status = CurrentCreateModName
+                    });
+                }
+                else if (CreateOrEdit == EnumCreateOrEdit.StatusEdit)
+                {
+                    CurrentCreateModName = args.Name;
+                    EditSelectedTemplateItem(CurrentCreateModName);
+                    eventAggregator.GetEvent<SetCurrentCreateModEvent>().Publish(new stringUnicode
+                    {
+                        Unicode = Unicode,
+                        Status = CurrentCreateModName
+                    });
+                }
             }
         }
 
@@ -168,19 +228,21 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 CurrentCreateModName = "WatermarkCreateFileContent";
             }
-            if (navigationContext.Parameters.TryGetValue<WatermarkInfo>("WatermarkInfo", out WatermarkInfo))
+            if (navigationContext.Parameters.TryGetValue<WatermarkItem>("WatermarkItem", out WatermarkItem))
             {
                 EditSelectedTemplateItem(CurrentCreateModName);
-                EditBaseVisible = Visibility.Visible;
-                CreateBaseVisible = Visibility.Collapsed;
+                CreateOrEdit = EnumCreateOrEdit.StatusEdit;
             }
             else
             {
                 EnterSelectedCreateMod(CurrentCreateModName);
-                CreateBaseVisible = Visibility.Visible;
-                EditBaseVisible = Visibility.Collapsed;
+                CreateOrEdit = EnumCreateOrEdit.StatusCreate;
             }
-            eventAggregator.GetEvent<SetCurrentCreateModEvent>().Publish(CurrentCreateModName);
+            eventAggregator.GetEvent<SetCurrentCreateModEvent>().Publish(new stringUnicode
+            {
+                Unicode = Unicode,
+                Status = CurrentCreateModName
+            });
         }
     }
 }

+ 132 - 26
PDF Office/ViewModels/EditTools/Watermark/WatermarkCreateFileContentViewModel.cs

@@ -9,6 +9,7 @@ using PDF_Office.Model;
 using PDF_Office.Model.EditTools.Watermark;
 using PDF_Office.Model.PageEdit;
 using PDF_Office.Properties;
+using PDF_Office.ViewModels.Tools;
 using PDFSettings;
 using Prism.Commands;
 using Prism.Events;
@@ -29,7 +30,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
     {
         public WatermarkInfo WatermarkInfo = new WatermarkInfo();
 
-        private WatermarkInfo TemplateWatermarkInfo;
+        private WatermarkItem TemplateWatermarkItem;
 
         private CPDFViewer PDFViewer;
 
@@ -117,7 +118,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _rotationValue, value);
                 WatermarkInfo.Rotation = ((float)RotationValue / 180) * 3.1415926f;
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
 
@@ -129,7 +134,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _opacityValue, value);
                 WatermarkInfo.Opacity = (byte)(((float)OpacityValue / 100) * 225);
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
 
@@ -151,7 +160,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _vertOffsetValue, value);
                 WatermarkInfo.VertOffset = float.Parse(VertOffsetValue);
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
 
@@ -163,7 +176,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _horizOffsetValue, value);
                 WatermarkInfo.HorizOffset = float.Parse(HorizOffsetValue);
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
 
@@ -175,7 +192,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _verticalSpacingValue, value);
                 WatermarkInfo.VerticalSpacing = float.Parse(VerticalSpacingValue);
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
 
@@ -187,7 +208,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _horizontalSpacingValue, value);
                 WatermarkInfo.HorizontalSpacing = float.Parse(HorizontalSpacingValue);
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
 
@@ -199,7 +224,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 _pageRangeText = value;
                 EditToolsHelper.GetPageRange(PageRangeSelectIndex, PDFViewer.Document, ref WatermarkInfo.PageRange, PageRangeText);
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
 
@@ -211,7 +240,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _isFullValue, value);
                 WatermarkInfo.Isfull = IsFullValue;
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
 
@@ -224,7 +257,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
                 SetProperty(ref _pageRangeSelectIndex, value);
                 WatermarkInfo.PageRangeIndex = PageRangeSelectIndex;
                 EditToolsHelper.GetPageRange(PageRangeSelectIndex, PDFViewer.Document, ref WatermarkInfo.PageRange, PageRangeText);
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
 
             }
         }
@@ -237,7 +274,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _isFrontSelectedIndex, value);
                 SetIsFront(IsFrontSelectedIndex);
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
 
@@ -270,21 +311,25 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
 
         public DelegateCommand OpenFileCommand { get; set; }
 
+        public string Unicode = null;
+
         public WatermarkCreateFileContentViewModel(IEventAggregator eventAggregator)
         {
             this.eventAggregator = eventAggregator;
+            Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
             WatermarkInfo.WatermarkType = C_Watermark_Type.WATERMARK_TYPE_IMG;
             ChangeLocationCommand = new DelegateCommand<object>(ChangeLocation);
             OpenFileCommand = new DelegateCommand(OpenFile);
             InitList();
             InitWatermarkInfo();
             InitLocationButtonMatrix();
-            eventAggregator.GetEvent<SaveWatermarkTemplateEvent>().Subscribe(SaveWatermarkTemplate);
-            eventAggregator.GetEvent<ConfirmEditWatermarkTemplateItemEvent>().Subscribe(ConfirmEditWatermarkTemplateItem);
+            eventAggregator.GetEvent<SaveWatermarkTemplateEvent>().Subscribe(SaveWatermarkTemplate, e => e.Unicode == Unicode);
+            eventAggregator.GetEvent<ConfirmEditWatermarkTemplateItemEvent>().Subscribe(ConfirmEditWatermarkTemplateItem, e => e.Unicode == Unicode);
         }
 
-        public void SaveWatermarkTemplate(EnumTextOrFile enumTextOrFile)
+        public void SaveWatermarkTemplate(EnumTextOrFileUnicode enumTextOrFileunicode)
         {
+            EnumTextOrFile enumTextOrFile = enumTextOrFileunicode.Status;
             if (enumTextOrFile == EnumTextOrFile.StatusFile && FileNameText != "")
             {
                 SaveCurrentTemplate();
@@ -297,9 +342,9 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 watermarkItem.type = watermarkInfo.WatermarkType;
                 //watermarkItem.imageArray = watermarkInfo.ImageArray;
-                watermarkItem.imagepath=watermarkInfo.ImagePath;
+                watermarkItem.imagepath = watermarkInfo.ImagePath;
                 watermarkItem.imageSize = watermarkInfo.ImageSize;
-                watermarkItem.imageWidth  = watermarkInfo.ImageWidth;
+                watermarkItem.imageWidth = watermarkInfo.ImageWidth;
                 watermarkItem.imageHeight = watermarkInfo.ImageHeight;
                 watermarkItem.horizalign = watermarkInfo.WatermarkHorizalign;
                 watermarkItem.vertalign = watermarkInfo.WatermarkVertalign;
@@ -316,6 +361,46 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             }
         }
 
+        public void ConvertItemToInfo(WatermarkItem watermarkItem, ref WatermarkInfo watermarkInfo)
+        {
+            if (watermarkItem != null)
+            {
+                watermarkInfo.WatermarkType=C_Watermark_Type.WATERMARK_TYPE_IMG;
+                if (watermarkItem.imagepath != "")
+                {
+                    FileInfo file = new FileInfo(watermarkItem.imagepath);
+                    if (file.Exists)
+                    {
+                        if (file.Extension == ".pdf")
+                        {
+                            GetBitmapFromDocment(watermarkItem.imagepath);
+                        }
+                        else
+                        {
+                            EditToolsHelper.ChooseFile(watermarkItem.imagepath, ref WatermarkInfo);
+                        }
+                    }
+                    else
+                    {
+                        watermarkInfo.WatermarkType = ComPDFKit.PDFWatermark.C_Watermark_Type.WATERMARK_TYPE_UNKWON;
+                        MessageBoxEx.Show("原路径为:" + watermarkItem.imagepath + ",该文件不存在");
+                    }
+                }
+                watermarkInfo.WatermarkHorizalign = watermarkItem.horizalign;
+                watermarkInfo.WatermarkVertalign = watermarkItem.vertalign;
+                watermarkInfo.Isfull = watermarkItem.isFullScreen;
+                watermarkInfo.IsFront = watermarkItem.isfront;
+                watermarkInfo.ImageSize = watermarkItem.imageSize;
+                watermarkInfo.Opacity = watermarkItem.opacity;
+                watermarkInfo.Rotation = watermarkItem.rotation;
+                watermarkInfo.VertOffset = watermarkItem.vertOffset;
+                watermarkInfo.HorizOffset = watermarkItem.horizOffset;
+                watermarkInfo.VerticalSpacing = watermarkItem.verticalSpacing;
+                watermarkInfo.HorizontalSpacing = watermarkItem.horizontalSpacing;
+                EditToolsHelper.GetPageRange(watermarkItem.pageRangeIndex, PDFViewer.Document, ref WatermarkInfo.PageRange, watermarkItem.pageRange);
+            }
+        }
+
         public void SaveCurrentTemplate()
         {
             var watermarkItem = new WatermarkItem();
@@ -323,7 +408,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             watermarkItem.templateName += Settings.Default.WatermarkIndex.ToString();
             Settings.Default.WatermarkTemplateList.Add(watermarkItem);
             Settings.Default.Save();
-            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusTemplate);
+            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode
+            {
+                Unicode = Unicode,
+                Status = EnumTemplateListOrCreate.StatusTemplate
+            });
         }
 
         private void SetIsFront(int Index)
@@ -384,7 +473,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 WatermarkInfo.WatermarkVertalign = (C_Watermark_Vertalign)(int.Parse(args) / 10);
                 WatermarkInfo.WatermarkHorizalign = (C_Watermark_Horizalign)(int.Parse(args) % 10);
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
                 InitLocationButtonMatrix();
             }
         }
@@ -392,19 +485,28 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         public void ConfirmEditToolsWatermark()
         {
 
-            eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+            eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+            {
+                Unicode = Unicode,
+                Status = WatermarkInfo
+            });
 
         }
 
-        public void ConfirmEditWatermarkTemplateItem(EnumTextOrFile enumTextOrFile)
+        public void ConfirmEditWatermarkTemplateItem(EnumTextOrFileUnicode enumTextOrFileunicode)
         {
+            EnumTextOrFile enumTextOrFile = enumTextOrFileunicode.Status;
             if (enumTextOrFile == EnumTextOrFile.StatusFile)
             {
                 var watermarkItem = new WatermarkItem();
                 ConvertInfoToItem(ref watermarkItem, WatermarkInfo);
-                
-                this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusTemplate);
-                this.eventAggregator.GetEvent<SaveEditedWatermarkTemplateItemEvent>().Publish(watermarkItem);
+                Settings.Default.WatermarkTemplateList[TemplateWatermarkItem.listIndex] = watermarkItem;
+                Settings.Default.Save();
+                this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode
+                {
+                    Unicode = Unicode,
+                    Status = EnumTemplateListOrCreate.StatusTemplate
+                });
             }
         }
 
@@ -413,7 +515,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         /// </summary>
         public void InitComponentBySelectedInfo()
         {
-
+            ConvertItemToInfo(TemplateWatermarkItem, ref WatermarkInfo);
         }
 
         public void OpenFile()
@@ -435,7 +537,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
                 }
                 WatermarkInfo.ImagePath = dlg.FileName;
                 CreateFileVisible = Visibility.Visible;
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
 
@@ -468,7 +574,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         {
             navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
             EditToolsHelper.GetPageRange(PageRangeSelectIndex, PDFViewer.Document, ref WatermarkInfo.PageRange, PageRangeText);
-            if (navigationContext.Parameters.TryGetValue<WatermarkInfo>("WatermarkInfo", out TemplateWatermarkInfo))
+            if (navigationContext.Parameters.TryGetValue<WatermarkItem>("WatermarkItem", out TemplateWatermarkItem))
             {
                 InitComponentBySelectedInfo();
             }

+ 131 - 27
PDF Office/ViewModels/EditTools/Watermark/WatermarkCreateTextContentViewModel.cs

@@ -9,8 +9,10 @@ using PDF_Office.Model;
 using PDF_Office.Model.EditTools.Background;
 using PDF_Office.Model.EditTools.Watermark;
 using PDF_Office.Properties;
+using PDF_Office.ViewModels.Tools;
 using PDFSettings;
 using Prism.Commands;
+using Prism.Common;
 using Prism.Events;
 using Prism.Mvvm;
 using Prism.Regions;
@@ -26,7 +28,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
     {
         public WatermarkInfo WatermarkInfo = new WatermarkInfo();
 
-        private WatermarkInfo TemplateWatermarkInfo;
+        private WatermarkItem TemplateWatermarkItem;
 
         IEventAggregator eventAggregator;
 
@@ -173,7 +175,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _rotationValue, value);
                 WatermarkInfo.Rotation = ((float)RotationValue / 180) * 3.1415926f;
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
 
@@ -185,7 +191,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _opacityValue, value);
                 WatermarkInfo.Opacity = (byte)(((float)OpacityValue / 100) * 225);
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
 
@@ -207,7 +217,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _vertOffsetValue, value);
                 WatermarkInfo.VertOffset = float.Parse(VertOffsetValue);
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
 
@@ -219,7 +233,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _horizOffsetValue, value);
                 WatermarkInfo.HorizOffset = float.Parse(HorizOffsetValue);
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
 
@@ -231,7 +249,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _verticalSpacingValue, value);
                 WatermarkInfo.VerticalSpacing = float.Parse(VerticalSpacingValue);
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
 
@@ -243,7 +265,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _horizontalSpacingValue, value);
                 WatermarkInfo.HorizontalSpacing = float.Parse(HorizontalSpacingValue);
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
 
@@ -255,7 +281,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _fontSizeSelectedIndex, value);
                 SetFontSize(FontSizeSelectedIndex);
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
 
@@ -267,7 +297,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _fontNameSelectedIndex, value);
                 SetFontName(FontNameSelectedIndex);
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
 
@@ -279,7 +313,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _isFrontSelectedIndex, value);
                 SetIsFront(IsFrontSelectedIndex);
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
 
@@ -291,7 +329,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _isFullValue, value);
                 WatermarkInfo.Isfull = IsFullValue;
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
         private SolidColorBrush _solidColorBrush = null;
@@ -320,7 +362,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
                 SetProperty(ref _stringColor, value);
                 WatermarkInfo.TextColor = EditToolsHelper.ConvertColor(value);
                 SolidColorBrush = new SolidColorBrush(_stringColor);
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
         public string _pageRangeText = "0";
@@ -331,7 +377,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 _pageRangeText = value;
                 EditToolsHelper.GetPageRange(PageRangeSelectIndex, PDFViewer.Document, ref WatermarkInfo.PageRange, PageRangeText);
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
 
@@ -344,7 +394,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
                 SetProperty(ref _pageRangeSelectIndex, value);
                 WatermarkInfo.PageRangeIndex = PageRangeSelectIndex;
                 EditToolsHelper.GetPageRange(PageRangeSelectIndex, PDFViewer.Document, ref WatermarkInfo.PageRange, PageRangeText);
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
             }
         }
 
@@ -361,9 +415,12 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
 
         public DelegateCommand<object> TextValueChangedCommand { get; set; }
 
+        public string Unicode = null;
+
         public WatermarkCreateTextContentViewModel(IEventAggregator eventAggregator)
         {
             this.eventAggregator = eventAggregator;
+            Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
             WatermarkInfo.WatermarkType = C_Watermark_Type.WATERMARK_TYPE_TEXT;
             ChangeLocationCommand = new DelegateCommand<object>(ChangeLocation);
             SelectedColorChangedCommand = new DelegateCommand<object>(ChangedColor);
@@ -372,12 +429,13 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             InitList();
             InitWatermarkInfo();
             InitLocationButtonMatrix();
-            eventAggregator.GetEvent<SaveWatermarkTemplateEvent>().Subscribe(SaveWatermarkTemplate);
-            eventAggregator.GetEvent<ConfirmEditWatermarkTemplateItemEvent>().Subscribe(ConfirmEditWatermarkTemplateItem);
+            eventAggregator.GetEvent<SaveWatermarkTemplateEvent>().Subscribe(SaveWatermarkTemplate, e => e.Unicode == Unicode);
+            eventAggregator.GetEvent<ConfirmEditWatermarkTemplateItemEvent>().Subscribe(ConfirmEditWatermarkTemplateItem, e => e.Unicode == Unicode);
         }
 
-        public void SaveWatermarkTemplate(EnumTextOrFile enumTextOrFile)
+        public void SaveWatermarkTemplate(EnumTextOrFileUnicode enumTextOrFileunicode)
         {
+            EnumTextOrFile enumTextOrFile = enumTextOrFileunicode.Status;
             if (enumTextOrFile == EnumTextOrFile.StatusText)
             {
                 SaveCurrentTemplate();
@@ -408,6 +466,30 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             }
         }
 
+        public void ConvertItemToInfo(WatermarkItem watermarkItem, ref WatermarkInfo watermarkInfo)
+        {
+            if (watermarkItem != null)
+            {
+                watermarkInfo.WatermarkType = C_Watermark_Type.WATERMARK_TYPE_TEXT;
+                watermarkInfo.Text = watermarkItem.text;
+                watermarkInfo.TextSize = watermarkItem.fontSize;
+                watermarkInfo.FontName = watermarkItem.fontName;
+                watermarkInfo.TextColor = watermarkItem.textcolor;
+                watermarkInfo.WatermarkHorizalign = watermarkItem.horizalign;
+                watermarkInfo.WatermarkVertalign = watermarkItem.vertalign;
+                watermarkInfo.Isfull = watermarkItem.isFullScreen;
+                watermarkInfo.IsFront = watermarkItem.isfront;
+                watermarkInfo.Opacity = watermarkItem.opacity;
+                watermarkInfo.Rotation = watermarkItem.rotation;
+                watermarkInfo.VertOffset = watermarkItem.vertOffset;
+                watermarkInfo.HorizOffset = watermarkItem.horizOffset;
+                watermarkInfo.VerticalSpacing = watermarkItem.verticalSpacing;
+                watermarkInfo.HorizontalSpacing = watermarkItem.horizontalSpacing;
+                EditToolsHelper.GetPageRange(watermarkItem.pageRangeIndex, PDFViewer.Document, ref WatermarkInfo.PageRange, watermarkItem.pageRange);
+            }
+
+        }
+
 
         public void SaveCurrentTemplate()
         {
@@ -416,7 +498,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             watermarkItem.templateName += Settings.Default.WatermarkIndex.ToString();
             Settings.Default.WatermarkTemplateList.Add(watermarkItem);
             Settings.Default.Save();
-            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusTemplate);
+            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode
+            {
+                Unicode = Unicode,
+                Status = EnumTemplateListOrCreate.StatusTemplate
+            });
         }
 
         private void InitLocationButtonMatrix()
@@ -442,7 +528,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 WatermarkInfo.WatermarkVertalign = (C_Watermark_Vertalign)(int.Parse(args) / 10);
                 WatermarkInfo.WatermarkHorizalign = (C_Watermark_Horizalign)(int.Parse(args) % 10);
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
                 InitLocationButtonMatrix();
             }
         }
@@ -469,7 +559,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
 
                     TextValue = textValue.Text;
                     WatermarkInfo.Text = TextValue;
-                    eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                    eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                    {
+                        Unicode = Unicode,
+                        Status = WatermarkInfo
+                    });
                 }
             }
 
@@ -506,7 +600,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
 
         public void ConfirmEditToolsWatermark()
         {
-                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = WatermarkInfo
+                });
         }
 
         private void InitList()
@@ -543,18 +641,24 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         /// </summary>
         public void InitComponentBySelectedInfo()
         {
-
+            ConvertItemToInfo(TemplateWatermarkItem, ref WatermarkInfo);
         }
 
-        public void ConfirmEditWatermarkTemplateItem(EnumTextOrFile enumTextOrFile)
+        public void ConfirmEditWatermarkTemplateItem(EnumTextOrFileUnicode enumTextOrFileunicode)
         {
+            EnumTextOrFile enumTextOrFile = enumTextOrFileunicode.Status;
             if (enumTextOrFile == EnumTextOrFile.StatusText)
             {
                 var watermarkItem = new WatermarkItem();
                 ConvertInfoToItem(ref watermarkItem, WatermarkInfo);
-                
-                this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusTemplate);
-                this.eventAggregator.GetEvent<SaveEditedWatermarkTemplateItemEvent>().Publish(watermarkItem);
+                Settings.Default.WatermarkTemplateList[TemplateWatermarkItem.listIndex] = watermarkItem;
+                Settings.Default.Save();
+                this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode
+                {
+                    Unicode = Unicode,
+                    Status = EnumTemplateListOrCreate.StatusTemplate
+                });
+
             }
         }
 
@@ -571,7 +675,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         {
             navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
             EditToolsHelper.GetPageRange(PageRangeSelectIndex, PDFViewer.Document, ref WatermarkInfo.PageRange, PageRangeText);
-            if (navigationContext.Parameters.TryGetValue<WatermarkInfo>("WatermarkInfo", out TemplateWatermarkInfo))
+            if (navigationContext.Parameters.TryGetValue<WatermarkItem>("WatermarkItem", out TemplateWatermarkItem))
             {
                 InitComponentBySelectedInfo();
             }

+ 19 - 10
PDF Office/ViewModels/EditTools/Watermark/WatermarkDocumentContentViewModel.cs

@@ -25,6 +25,8 @@ using Size = System.Windows.Size;
 using System.Diagnostics;
 using System.Windows.Controls;
 using ComPDFKit.Import;
+using PDF_Office.ViewModels.Tools;
+using static System.Windows.Forms.VisualStyles.VisualStyleElement;
 
 namespace PDF_Office.ViewModels.EditTools.Watermark
 {
@@ -39,22 +41,24 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         private ViewContentViewModel viewContentViewModel;
         private CPDFViewer pdfViewer;
         private WatermarkInfo watermarkInfo;
-        private string unicode = null;
+
         public EnumDelete EnumDelete = EnumDelete.StatusCreate;
 
         public bool firstin = true;
 
         public string ViewerRegionName { get; set; }
 
+        public string Unicode = null;
+
         public WatermarkDocumentContentViewModel(IEventAggregator eventAggregator, IRegionManager regionManager)
         {
             this.regionManager = regionManager;
             this.eventAggregator = eventAggregator;
-            eventAggregator.GetEvent<SetWatermarkEvent>().Subscribe(SetWatermark);
+            Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
+            eventAggregator.GetEvent<SetWatermarkEvent>().Subscribe(SetWatermark, e => e.Unicode == Unicode);
             ViewerRegionName = RegionNames.WatermarkViwerRegionName;
             eventAggregator.GetEvent<ConfirmEditToolsWatermarkEvent>().Subscribe(ConfirmEditToolsWatermark);
-            eventAggregator.GetEvent<DeleteWatermarkEvent>().Subscribe(DeleteWatermark);
-
+            eventAggregator.GetEvent<DeleteWatermarkEvent>().Subscribe(DeleteWatermark, e => e.Unicode == Unicode);
         }
 
         public void ConfirmEditToolsWatermark()
@@ -67,7 +71,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
 
             if (watermarkInfo != null)
             {
-                
+
                 if (EnumDelete == EnumDelete.StatusDeleteInitial)
                 {
                     viewContentViewModel.PDFViewer.Document.DeleteWatermarks();
@@ -81,22 +85,24 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             }
         }
 
-        public void DeleteWatermark(EnumDelete enumDelete)
+        public void DeleteWatermark(EnumDeleteUnicode enumDeleteunicode)
         {
+            EnumDelete enumDelete = enumDeleteunicode.Status;
             EnumDelete = enumDelete;
             PDFViewer.Document.DeleteWatermarks();
             PDFViewer.Document.ReleasePages();
             PDFViewer.ReloadDocument();
         }
 
-        public void SetWatermark(WatermarkInfo watermarkInfo)
+        public void SetWatermark(WatermarkInfoUnicode watermarkInfounicode)
         {
+            WatermarkInfo watermarkInfo= watermarkInfounicode.Status;
             this.watermarkInfo = watermarkInfo;
             //CreateWatermark(viewContentViewModel.PDFViewer.Document);
             // PDFViewer.Document.PdfToImage("0-1", "C:\\Users\\kdanmobile\\Desktop\\888\\");
             viewContentViewModel.PDFViewer.Document.WriteToFilePath("C:\\Users\\kdanmobile\\Desktop\\888\\sb22222_.pdf");
             PDFViewer.InvalidChildVisual(false);
-          
+
         }
 
         public void CreateWatermark(CPDFDocument document, bool IsNewDoc = false)
@@ -208,7 +214,6 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         {
 
             navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out pdfViewer);
-
             navigationContext.Parameters.TryGetValue<ViewContentViewModel>(ParameterNames.ViewContentViewModel, out viewContentViewModel);
             if (pdfViewer != null && viewContentViewModel != null)
             {
@@ -224,7 +229,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
                     PDFViewer.Load();
                     PDFViewer.ChangeViewMode(ViewMode.Single);
                     PDFViewer.SetMouseMode(MouseModes.Default);
-                    eventAggregator.GetEvent<CurrentWatermarkPDFViewerEvent>().Publish(PDFViewer);
+                    eventAggregator.GetEvent<CurrentWatermarkPDFViewerEvent>().Publish(new CPDFViewerUnicode
+                    {
+                        Unicode = Unicode,
+                        Status = PDFViewer
+                    });
                 }
             }
         }

+ 42 - 11
PDF Office/ViewModels/EditTools/Watermark/WatermarkTemplateListBaseContentViewModel.cs

@@ -2,6 +2,7 @@
 using PDF_Office.CustomControl;
 using PDF_Office.EventAggregators;
 using PDF_Office.Model;
+using PDF_Office.ViewModels.Tools;
 using Prism.Commands;
 using Prism.Events;
 using Prism.Mvvm;
@@ -10,6 +11,8 @@ using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Windows.Controls;
+using static System.Windows.Forms.VisualStyles.VisualStyleElement;
+using Button = System.Windows.Controls.Button;
 
 namespace PDF_Office.ViewModels.EditTools.Watermark
 {
@@ -53,19 +56,23 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         public DelegateCommand<object> ChangeTemplateListModCommand { get; set; }
         public DelegateCommand EnterCreateCommand { get; set; }
 
+        public string Unicode = null;
+
         public WatermarkTemplateListBaseContentViewModel(IRegionManager watermarkTemplateListRegion, IEventAggregator eventAggregator)
         {
             this.watermarkTemplateListRegion = watermarkTemplateListRegion;
             this.eventAggregator = eventAggregator;
+            Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
             WatermarkTemplateListRegionName = Guid.NewGuid().ToString();
             ChangeTemplateListModCommand = new DelegateCommand<object>(ChangeTemplateListMod);
             EnterCreateCommand = new DelegateCommand(EnterCreate);
             EnterSelectedTemplateListMod("WatermarkTemplateListColorContent");
-            eventAggregator.GetEvent<CurrentWatermarkPDFViewerEvent>().Subscribe(CurrentWatermarkPDFViewer);
+            eventAggregator.GetEvent<CurrentWatermarkPDFViewerEvent>().Subscribe(CurrentWatermarkPDFViewer, e => e.Unicode == Unicode);
 
         }
-        public void CurrentWatermarkPDFViewer(CPDFViewer cPDFViewer) {
-            CurrentPDFViewer = cPDFViewer;
+        public void CurrentWatermarkPDFViewer(CPDFViewerUnicode cPDFViewerunicode)
+        {
+            CurrentPDFViewer = cPDFViewerunicode.Status;
         }
         public void EnterCreate()
         {
@@ -75,13 +82,26 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
                 alertsMessage.ShowDialog("文件中已添加水印,您要替换现有的水印吗?", "", "取消", "确定");
                 if (alertsMessage.result == ContentResult.Ok)
                 {
-                    this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(EnumDelete.StatusDeleteInitial);
+                    this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(new EnumDeleteUnicode
+                    {
+                        Unicode = Unicode,
+                        Status = EnumDelete.StatusDeleteInitial
+                    });
                 }
-                else {
-                    this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(EnumDelete.StatusCreate);
+                else
+                {
+                    this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(new EnumDeleteUnicode
+                    {
+                        Unicode = Unicode,
+                        Status = EnumDelete.StatusCreate
+                    });
                 }
             }
-            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusCreate);
+            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode
+            {
+                Unicode = Unicode,
+                Status = EnumTemplateListOrCreate.StatusCreate
+            });
 
         }
 
@@ -90,7 +110,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             NavigationParameters param = new NavigationParameters();
             param.Add(ParameterNames.PDFViewer, CurrentPDFViewer);
             watermarkTemplateListRegion.RequestNavigate(WatermarkTemplateListRegionName, currentTemplateListName, param);
-            eventAggregator.GetEvent<CurrentWatermarkPDFViewerEvent>().Publish(CurrentPDFViewer);
+            eventAggregator.GetEvent<CurrentWatermarkPDFViewerEvent>().Publish(new CPDFViewerUnicode
+            {
+                Unicode = Unicode,
+                Status = CurrentPDFViewer
+            });
             watermarkTemplateListVisible = System.Windows.Visibility.Visible;
         }
 
@@ -101,7 +125,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 CurrentTemplateListModName = args.Name;
                 EnterSelectedTemplateListMod(CurrentTemplateListModName);
-                eventAggregator.GetEvent<SetCurrentTemplateListModEvent>().Publish(CurrentTemplateListModName);
+                eventAggregator.GetEvent<SetCurrentTemplateListModEvent>().Publish(new stringUnicode
+                {
+                    Unicode = Unicode,
+                    Status = CurrentTemplateListModName
+                });
             }
         }
 
@@ -116,7 +144,6 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
 
         public void OnNavigatedTo(NavigationContext navigationContext)
         {
-
             if (IsFirstEnter)
             {
                 CurrentTemplateListModName = WatermarkTemplateListTextContentName;
@@ -135,7 +162,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
                     CurrentTemplateListModName = WatermarkTemplateListFileContentName;
                 }
                 EnterSelectedTemplateListMod(CurrentTemplateListModName);
-                eventAggregator.GetEvent<SetCurrentTemplateListModEvent>().Publish(CurrentTemplateListModName);
+                eventAggregator.GetEvent<SetCurrentTemplateListModEvent>().Publish(new stringUnicode
+                {
+                    Unicode = Unicode,
+                    Status = CurrentTemplateListModName
+                });
 
 
             }

+ 43 - 18
PDF Office/ViewModels/EditTools/Watermark/WatermarkTemplateListFileContentViewModel.cs

@@ -9,6 +9,7 @@ using PDF_Office.Model;
 using PDF_Office.Model.EditTools.Background;
 using PDF_Office.Model.EditTools.Watermark;
 using PDF_Office.Properties;
+using PDF_Office.ViewModels.Tools;
 using PDFSettings;
 using Prism.Commands;
 using Prism.Events;
@@ -27,6 +28,7 @@ using System.Windows;
 using System.Windows.Controls;
 using System.Windows.Media;
 using System.Windows.Media.Imaging;
+using static System.Windows.Forms.VisualStyles.VisualStyleElement;
 
 namespace PDF_Office.ViewModels.EditTools.Watermark
 {
@@ -60,7 +62,8 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         }
 
         private ImageSource _imageSource;
-        public ImageSource ImageSource {
+        public ImageSource ImageSource
+        {
 
             get { return _imageSource; }
             set { SetProperty(ref _imageSource, value); }
@@ -72,24 +75,25 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         public DelegateCommand DeleteAllTemplateItemCommand { get; set; }
         public DelegateCommand<object> SelectTemplateItemCommand { get; set; }
 
+        public string Unicode = null;
 
         public WatermarkTemplateListFileContentViewModel(IEventAggregator eventAggregator)
         {
             this.eventAggregator = eventAggregator;
+            Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
             AddTemplateCommand = new DelegateCommand(AddTemplate);
             DeleteTemplateItemCommand = new DelegateCommand<object>(DeleteTemplateItem);
             EditTemplateItemCommand = new DelegateCommand<object>(RequestEditTemplateItem);
             DeleteAllTemplateItemCommand = new DelegateCommand(DeleteAllTemplateItem);
             SelectTemplateItemCommand = new DelegateCommand<object>(SelectTemplateItem);
 
-            eventAggregator.GetEvent<CurrentWatermarkPDFViewerEvent>().Subscribe(CurrentWatermarkPDFViewer);
-            eventAggregator.GetEvent<SaveEditedWatermarkTemplateItemEvent>().Subscribe(SaveEditedWatermarkTemplateItem);
+            eventAggregator.GetEvent<CurrentWatermarkPDFViewerEvent>().Subscribe(CurrentWatermarkPDFViewer, e => e.Unicode == Unicode);
+            eventAggregator.GetEvent<SaveEditedWatermarkTemplateItemEvent>().Subscribe(SaveEditedWatermarkTemplateItem, e => e.Unicode == Unicode);
 
         }
-        public void CurrentWatermarkPDFViewer(CPDFViewer cPDFViewer)
+        public void CurrentWatermarkPDFViewer(CPDFViewerUnicode cPDFViewerunicode)
         {
-            CurrentPDFViewer = cPDFViewer;
-
+            CurrentPDFViewer = cPDFViewerunicode.Status;
         }
 
         private void CheckTemplateListIsEmpty(List<WatermarkItem> watermarkTemplateList)
@@ -112,7 +116,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
                 if (Settings.Default.WatermarkTemplateList[temp].type == ComPDFKit.PDFWatermark.C_Watermark_Type.WATERMARK_TYPE_IMG)
                 {
                     watermarkModTextTemplateList.Add(Settings.Default.WatermarkTemplateList[temp]);
-                    
+
                 }
             }
             WatermarkModFileCollection = new ObservableCollection<WatermarkItem>(watermarkModTextTemplateList);
@@ -133,7 +137,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
 
         public void AddTemplate()
         {
-            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusCreate);
+            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode
+            {
+                Unicode = Unicode,
+                Status = EnumTemplateListOrCreate.StatusCreate
+            });
         }
 
         public void DeleteTemplateItem(object e)
@@ -171,8 +179,9 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             GetWatermarkSource();
         }
 
-        public void SaveEditedWatermarkTemplateItem(WatermarkItem watermarkItem)
+        public void SaveEditedWatermarkTemplateItem(WatermarkItemUnicode watermarkItemunicode)
         {
+            WatermarkItem watermarkItem = watermarkItemunicode.Status;
             Settings.Default.WatermarkTemplateList[TemplateIndex] = watermarkItem;
             Settings.Default.Save();
             GetWatermarkSource();
@@ -192,8 +201,12 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
                 return;
             }
             TemplateIndex = Settings.Default.WatermarkTemplateList.IndexOf(template);
-            ConvertItemToInfo(template, ref WatermarkInfo);
-            this.eventAggregator.GetEvent<EditWatermarkTemplateItemEvent>().Publish(WatermarkInfo);
+            template.listIndex = TemplateIndex;
+            this.eventAggregator.GetEvent<EditWatermarkTemplateItemEvent>().Publish(new WatermarkItemUnicode
+            {
+                Unicode = Unicode,
+                Status = template
+            });
         }
 
         public void SelectTemplateItem(object e)
@@ -204,11 +217,19 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
                 alertsMessage.ShowDialog("文件中已添加水印,您要替换现有的水印吗?", "", "取消", "确定");
                 if (alertsMessage.result == ContentResult.Ok)
                 {
-                    this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(EnumDelete.StatusDeleteInitial);
+                    this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(new EnumDeleteUnicode
+                    {
+                        Unicode = Unicode,
+                        Status = EnumDelete.StatusDeleteInitial
+                    });
                 }
                 else
                 {
-                    this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(EnumDelete.StatusCreate);
+                    this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(new EnumDeleteUnicode
+                    {
+                        Unicode = Unicode,
+                        Status = EnumDelete.StatusCreate
+                    });
                 }
             }
             var listBox = e as ListBox;
@@ -272,7 +293,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         public void SendTemplateItemToDocument(WatermarkItem WatermarkItem)
         {
             ConvertItemToInfo(WatermarkItem, ref WatermarkInfo);
-            eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+            eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+            {
+                Unicode = Unicode,
+                Status = WatermarkInfo
+            });
         }
 
         public static BitmapSource ToBitmapSource(System.Drawing.Bitmap image)
@@ -293,7 +318,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         {
             CPDFDocument newDoc = CPDFDocument.CreateDocument();
             newDoc.InsertPage(0, 595, 842, null);
-            WatermarkInfo watermarkInfo=new WatermarkInfo();
+            WatermarkInfo watermarkInfo = new WatermarkInfo();
             ConvertItemToInfo(WatermarkItem, ref watermarkInfo);
             CreateWatermark(newDoc, watermarkInfo);
             CPDFPage page = newDoc.PageAtIndex(0, true);
@@ -304,10 +329,10 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             newDoc.ReleasePages();
         }
 
-        public void CreateWatermark(CPDFDocument document ,WatermarkInfo watermarkInfo)
+        public void CreateWatermark(CPDFDocument document, WatermarkInfo watermarkInfo)
         {
             if (watermarkInfo != null)
-            { 
+            {
                 document.DeleteWatermarks();
                 CPDFWatermark watermark;
                 if (watermarkInfo.WatermarkType == C_Watermark_Type.WATERMARK_TYPE_TEXT)
@@ -320,7 +345,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
                 }
                 else
                 {
-                     watermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_IMG);
+                    watermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_IMG);
                     if (watermarkInfo.ImageArray != null)
                     {
                         watermark.SetImage(watermarkInfo.ImageArray, watermarkInfo.ImageWidth, watermarkInfo.ImageHeight);

+ 37 - 12
PDF Office/ViewModels/EditTools/Watermark/WatermarkTemplateListTextContentViewModel.cs

@@ -17,6 +17,7 @@ using PDF_Office.CustomControl;
 using PDF_Office.Model;
 using PDF_Office.Helper;
 using PDF_Office.Model.EditTools.Background;
+using PDF_Office.ViewModels.Tools;
 
 namespace PDF_Office.ViewModels.EditTools.Watermark
 {
@@ -56,22 +57,25 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         public DelegateCommand DeleteAllTemplateItemCommand { get; set; }
         public DelegateCommand<object> SelectTemplateItemCommand { get; set; }
 
+        public string Unicode = null;
+
+
         public WatermarkTemplateListTextContentViewModel(IEventAggregator eventAggregator)
         {
             this.eventAggregator = eventAggregator;
+            Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
             AddTemplateCommand = new DelegateCommand(AddTemplate);
             DeleteTemplateItemCommand = new DelegateCommand<object>(DeleteTemplateItem);
             DeleteAllTemplateItemCommand = new DelegateCommand(DeleteAllTemplateItem);
             EditTemplateItemCommand = new DelegateCommand<object>(RequestEditTemplateItem);
             SelectTemplateItemCommand = new DelegateCommand<object>(SelectTemplateItem);
-            eventAggregator.GetEvent<CurrentWatermarkPDFViewerEvent>().Subscribe(CurrentWatermarkPDFViewer);
-            eventAggregator.GetEvent<SaveEditedWatermarkTemplateItemEvent>().Subscribe(SaveEditedWatermarkTemplateItem);
+            eventAggregator.GetEvent<CurrentWatermarkPDFViewerEvent>().Subscribe(CurrentWatermarkPDFViewer, e => e.Unicode == Unicode);
+            eventAggregator.GetEvent<SaveEditedWatermarkTemplateItemEvent>().Subscribe(SaveEditedWatermarkTemplateItem, e => e.Unicode == Unicode);
 
         }
-        public void CurrentWatermarkPDFViewer(CPDFViewer cPDFViewer)
+        public void CurrentWatermarkPDFViewer(CPDFViewerUnicode cPDFViewerunicode)
         {
-            CurrentPDFViewer = cPDFViewer;
-
+            CurrentPDFViewer = cPDFViewerunicode.Status;
         }
 
         private void CheckTemplateListIsEmpty(List<WatermarkItem> watermarkTemplateList)
@@ -115,7 +119,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
 
         public void AddTemplate()
         {
-            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusCreate);
+            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode
+            {
+                Unicode = Unicode,
+                Status = EnumTemplateListOrCreate.StatusCreate
+            });
         }
 
         public void DeleteTemplateItem(object e)
@@ -166,8 +174,12 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
                 return;
             }
             TemplateIndex = Settings.Default.WatermarkTemplateList.IndexOf(template);
-            ConvertItemToInfo(template, ref WatermarkInfo);
-            this.eventAggregator.GetEvent<EditWatermarkTemplateItemEvent>().Publish(WatermarkInfo);
+            template.listIndex = TemplateIndex;
+            this.eventAggregator.GetEvent<EditWatermarkTemplateItemEvent>().Publish(new WatermarkItemUnicode
+            {
+                Unicode = Unicode,
+                Status = template
+            });
         }
 
         public void SelectTemplateItem(object e)
@@ -178,11 +190,19 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
                 alertsMessage.ShowDialog("文件中已添加水印,您要替换现有的水印吗?", "", "取消", "确定");
                 if (alertsMessage.result == ContentResult.Ok)
                 {
-                    this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(EnumDelete.StatusDeleteInitial);
+                    this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(new EnumDeleteUnicode
+                    {
+                        Unicode = Unicode,
+                        Status = EnumDelete.StatusDeleteInitial
+                    });
                 }
                 else
                 {
-                    this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(EnumDelete.StatusCreate);
+                    this.eventAggregator.GetEvent<DeleteWatermarkEvent>().Publish(new EnumDeleteUnicode
+                    {
+                        Unicode = Unicode,
+                        Status = EnumDelete.StatusCreate
+                    });
                 }
             }
             var listBox = e as ListBox;
@@ -190,8 +210,9 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             SendTemplateItemToDocument(WatermarkItem);
         }
 
-        public void SaveEditedWatermarkTemplateItem(WatermarkItem watermarkItem)
+        public void SaveEditedWatermarkTemplateItem(WatermarkItemUnicode watermarkItemunicode)
         {
+            WatermarkItem watermarkItem = watermarkItemunicode.Status;
             Settings.Default.WatermarkTemplateList[TemplateIndex] = watermarkItem;
             Settings.Default.Save();
             GetWatermarkSource();
@@ -224,7 +245,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         public void SendTemplateItemToDocument(WatermarkItem WatermarkItem)
         {
             ConvertItemToInfo(WatermarkItem, ref WatermarkInfo);
-            eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+            eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
+            {
+                Unicode = Unicode,
+                Status = WatermarkInfo
+            });
         }
 
         public bool IsNavigationTarget(NavigationContext navigationContext)

+ 1 - 1
PDF Office/ViewModels/Tools/ToolsBarContentViewModel.cs

@@ -23,7 +23,7 @@ namespace PDF_Office.ViewModels.Tools
 
         public IEventAggregator eventAggregator;
 
-        public string unicode = null;
+        public  string unicode = null;
 
         /// <summary>
         /// 是否是第一次加载

+ 5 - 3
PDF Office/ViewModels/ViewContentViewModel.cs

@@ -412,7 +412,7 @@ namespace PDF_Office.ViewModels
             InitialbarContentByTabItem(ref barContentByTabItem);
 
             eventAggregator.GetEvent<EnterSelectedEditToolEvent>().Subscribe(EnterEditTools, e => e.Unicode == unicode);
-            eventAggregator.GetEvent<CloseEditToolEvent>().Subscribe(CloseEditTool);
+            eventAggregator.GetEvent<CloseEditToolEvent>().Subscribe(CloseEditTool, e => e.Unicode == unicode);
 
             //TODO:根据缓存 选择用户上次选择的菜单
             EnterSelectedBar("TabItemAnnotation");
@@ -906,12 +906,13 @@ namespace PDF_Office.ViewModels
         /// <param name="EditToolName"></param>
         private void EnterEditTools(StringWithUnicode EditToolName)
         {
-
             EnterSelectedEditTool(EditToolName);
+
         }
 
-        private void CloseEditTool(EnumCloseMode enumCloseMode)
+        private void CloseEditTool(EnumCloseModeUnicode enumCloseModeunicode)
         {
+            EnumCloseMode enumCloseMode = enumCloseModeunicode.Status;
             if (enumCloseMode == EnumCloseMode.StatusConfirm)
             {
                 PDFViewer.Document.ReleasePages();
@@ -947,6 +948,7 @@ namespace PDF_Office.ViewModels
             {
                 param.Add(ParameterNames.PDFViewer, PDFViewer);
                 param.Add(ParameterNames.ViewContentViewModel, this);
+                param.Add("UniCode", unicode);
             }
             else//有传入其他内容的参数时
             {

+ 2 - 0
PDFSettings/WatermarkTemplateList.cs

@@ -33,6 +33,8 @@ namespace PDFSettings
         /// </summary>
         public ComPDFKit.PDFWatermark.C_Watermark_Type type = ComPDFKit.PDFWatermark.C_Watermark_Type.WATERMARK_TYPE_TEXT;
 
+        public int listIndex = 0;
+
         /// <summary>
         /// 字体名字
         /// </summary>