ソースを参照

Merge branch 'practice' of http://git.kdan.cc:8865/Windows/PDFOffice_Windows_exe into practice

# Conflicts:
#	PDF Office/ViewModels/EditTools/Background/BackgroundCreateBaseContentViewModel.cs
#	PDF Office/ViewModels/EditTools/Background/BackgroundCreateColorContentViewModel.cs
#	PDF Office/ViewModels/EditTools/Background/BackgroundCreateFileContentViewModel.cs
#	PDF Office/ViewModels/EditTools/Background/BackgroundTemplateListFileContentViewModel.cs
#	PDF Office/ViewModels/EditTools/Watermark/WatermarkCreateFileContentViewModel.cs
liuaoran 2 年 前
コミット
b80f2907c6
20 ファイル変更1094 行追加466 行削除
  1. 86 16
      PDF Office/EventAggregators/EditToolsEvent.cs
  2. 23 10
      PDF Office/ViewModels/EditTools/Background/BackgroundContentViewModel.cs
  3. 37 17
      PDF Office/ViewModels/EditTools/Background/BackgroundCreateBaseContentViewModel.cs
  4. 70 16
      PDF Office/ViewModels/EditTools/Background/BackgroundCreateColorContentViewModel.cs
  5. 53 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. 246 225
      PDF Office/ViewModels/EditTools/Background/BackgroundTemplateListColorContentViewModel.cs
  9. 23 7
      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. 131 28
      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();
         }

+ 37 - 17
PDF Office/ViewModels/EditTools/Background/BackgroundCreateBaseContentViewModel.cs

@@ -42,12 +42,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;
@@ -105,26 +105,35 @@ namespace PDF_Office.ViewModels.EditTools.Background
         public DelegateCommand SaveToTemplateListCommand { 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
+                });
             }
         }
 
@@ -132,25 +141,27 @@ 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);
-                backgroundCreateRegion.RequestNavigate(BackgroundCreateRegionName, currentCreateName, param);
-                backgroundCreateVisible = System.Windows.Visibility.Visible;
+            NavigationParameters param = new NavigationParameters();
+            param.Add(ParameterNames.PDFViewer, PDFViewer);
+            backgroundCreateRegion.RequestNavigate(BackgroundCreateRegionName, currentCreateName, param);
+            backgroundCreateVisible = System.Windows.Visibility.Visible;
         }
 
 
@@ -169,17 +180,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
+                    });
                 }
             }
         }
@@ -213,9 +229,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
+            });
         }
     }
 }

+ 70 - 16
PDF Office/ViewModels/EditTools/Background/BackgroundCreateColorContentViewModel.cs

@@ -21,6 +21,7 @@ using System.Text;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 using System.Windows.Media;
+using static System.Windows.Forms.VisualStyles.VisualStyleElement;
 
 namespace PDF_Office.ViewModels.EditTools.Background
 {
@@ -71,7 +72,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
+                });
             }
         }
 
@@ -83,7 +88,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
+                });
             }
         }
 
@@ -106,7 +115,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
+                });
             }
         }
 
@@ -118,7 +131,11 @@ 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
+                });
             }
         }
 
@@ -141,7 +158,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
+                });
             }
         }
 
@@ -153,7 +174,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
+                });
             }
         }
 
@@ -169,7 +194,11 @@ namespace PDF_Office.ViewModels.EditTools.Background
                 SetProperty(ref _pageRangeSelectIndex, value);
                 BackgroundInfo.PageRangeIndex = PageRangeSelectIndex;
                 EditToolsHelper.GetPageRange(PageRangeSelectIndex, PDFViewer.Document, ref BackgroundInfo.PageRange, PageRangeText);
-                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(BackgroundInfo);
+                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(new BackgroundInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = BackgroundInfo
+                });
             }
         }
 
@@ -178,9 +207,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;
+            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));
@@ -188,8 +221,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()
@@ -248,7 +281,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();
             }
         }
@@ -281,8 +318,9 @@ namespace PDF_Office.ViewModels.EditTools.Background
                 backgroundItem.scale = backgroundInfo.Scale;
                 backgroundItem.PageRangeIndex = backgroundInfo.PageRangeIndex;
                 backgroundItem.pageRange = backgroundInfo.PageRange;
+                backgroundItem.scale = backgroundInfo.Scale;
             }
-            //  backgroundItem.pagRangeMode = backgroundInfo.PageRange;
+
         }
 
         public void SaveCurrentTemplate()
@@ -348,7 +386,12 @@ namespace PDF_Office.ViewModels.EditTools.Background
             {
 
             }
-            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)
@@ -382,13 +425,18 @@ namespace PDF_Office.ViewModels.EditTools.Background
             VerticalOffsetValue = (BackgroundInfo.VertOffset).ToString();
         }
 
-        public void ConfirmEditBackgroundTemplateItem(EnumColorOrFile enumColorOrFile)
+        public void ConfirmEditBackgroundTemplateItem(EnumColorOrFileUnicode enumColorOrFileunicode)
         {
+            EnumColorOrFile enumColorOrFile = enumColorOrFileunicode.Status;
             if (enumColorOrFile == EnumColorOrFile.StatusColor)
             {
                 var backgroundItem = new BackgroundItem();
                 ConvertInfoToItem(ref backgroundItem, BackgroundInfo);
-                this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusTemplate);
+                this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode
+                {
+                    Unicode = Unicode,
+                    Status = EnumTemplateListOrCreate.StatusTemplate
+                });
 
                 try
                 {
@@ -448,13 +496,18 @@ namespace PDF_Office.ViewModels.EditTools.Background
                 {
 
                 }
-
+                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();
@@ -471,6 +524,7 @@ 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))
             {

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

@@ -68,7 +68,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
+                });
             }
         }
 
@@ -81,7 +85,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
+                });
             }
         }
 
@@ -100,7 +108,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
+                });
             }
         }
 
@@ -112,7 +124,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
+                });
             }
         }
 
@@ -152,10 +168,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();
@@ -163,8 +182,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);
 
 
         }
@@ -177,7 +196,7 @@ 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});
             }
         }
 
@@ -255,7 +274,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();
             }
         }
@@ -278,7 +301,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
+                });
             }
         }
 
@@ -311,7 +338,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()
@@ -377,17 +404,22 @@ namespace PDF_Office.ViewModels.EditTools.Background
             {
 
             }
-            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);
 
-                this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusTemplate);
+                this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode { Unicode = Unicode, Status = EnumTemplateListOrCreate.StatusTemplate });
 
                 try
                 {
@@ -447,12 +479,18 @@ namespace PDF_Office.ViewModels.EditTools.Background
                 {
 
                 }
+                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();
@@ -470,6 +508,7 @@ namespace PDF_Office.ViewModels.EditTools.Background
         public void OnNavigatedTo(NavigationContext navigationContext)
         {
             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

@@ -40,14 +40,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;
         }
 
@@ -59,8 +63,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);
@@ -162,8 +167,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
+                });
 
             }
         }

+ 246 - 225
PDF Office/ViewModels/EditTools/Background/BackgroundTemplateListColorContentViewModel.cs

@@ -1,225 +1,246 @@
-using Microsoft.Office.Interop.Word;
-using PDF_Office.EventAggregators;
-using PDF_Office.Model.EditTools.Background;
-using PDF_Office.Properties;
-using PDFSettings;
-using Prism.Commands;
-using Prism.Events;
-using Prism.Mvvm;
-using Prism.Regions;
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.IO;
-using System.Linq;
-using System.Security.Permissions;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows;
-using System.Windows.Controls;
-
-namespace PDF_Office.ViewModels.EditTools.Background
-{
-
-    public class BackgroundTemplateListColorContentViewModel : BindableBase, INavigationAware
-    {
-        private readonly IEventAggregator eventAggregator;
-        public BackgroundInfo BackgroundInfo = new BackgroundInfo();
-        public BackgroundItem BackgroundItem = new BackgroundItem();
-        public int TemplateIndex = 0;
-
-        private ObservableCollection<BackgroundItem> backgroundModcolorCollection = new ObservableCollection<BackgroundItem>();
-        public ObservableCollection<BackgroundItem> BackgroundModColorCollection
-        {
-            get { return backgroundModcolorCollection; }
-            set
-            {
-                backgroundModcolorCollection = value;
-                RaisePropertyChanged();
-            }
-        }
-
-        private Visibility _createTemplateVisible;
-        public Visibility CreateTemplateVisible
-        {
-            get { return _createTemplateVisible; }
-            set { SetProperty(ref _createTemplateVisible, value); }
-        }
-
-        public DelegateCommand AddTemplateCommand { get; set; }
-        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)
-        {
-            this.eventAggregator = eventAggregator;
-            AddTemplateCommand = new DelegateCommand(AddTemplate);
-            EditTemplateItemCommand = new DelegateCommand<object>(RequestEditTemplateItem);
-            DeleteTemplateItemCommand = new DelegateCommand<object>(DeleteTemplateItem);
-            DeleteAllTemplateItemCommand = new DelegateCommand(DeleteAllTemplateItem);
-            SelectTemplateItemCommand = new DelegateCommand<object>(SelectTemplateItem);
-
-            eventAggregator.GetEvent<SaveEditedBackgroundTemplateItemEvent>().Subscribe(SaveEditedBackgroundTemplateItem);
-        }
-
-        private void CheckTemplateListIsEmpty(List<BackgroundItem> backgroundTemplateList)
-        {
-            if (backgroundTemplateList.Count() == 0)
-            {
-                CreateTemplateVisible = Visibility.Visible;
-            }
-            else
-            {
-                CreateTemplateVisible = Visibility.Collapsed;
-            }
-        }
-
-        private void GetBackgroundSource()
-        {
-            List<BackgroundItem> backgroundModColorTemplateList = new List<BackgroundItem>();
-            for (int temp = 0; temp < Settings.Default.BackgroundTemplateList.Count; temp++)
-            {
-                if (Settings.Default.BackgroundTemplateList[temp].type == ComPDFKit.PDFDocument.C_Background_Type.BG_TYPE_COLOR)
-                {
-                    backgroundModColorTemplateList.Add(Settings.Default.BackgroundTemplateList[temp]);
-                }
-            }
-            BackgroundModColorCollection = new ObservableCollection<BackgroundItem>(backgroundModColorTemplateList);
-            CheckTemplateListIsEmpty(backgroundModColorTemplateList);
-        }
-
-        private void InitBackgroundTemplateList()
-        {
-            if (Settings.Default.BackgroundTemplateList == null)
-            {
-                Settings.Default.BackgroundTemplateList = new BackgroundTemplateList();
-            }
-            GetBackgroundSource();
-        }
-
-        public void AddTemplate()
-        {
-            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusCreate);
-        }
-
-        public void SaveEditedBackgroundTemplateItem(BackgroundItem backgroundItem)
-        {
-            if (backgroundItem.type == ComPDFKit.PDFDocument.C_Background_Type.BG_TYPE_COLOR)
-            {
-                Settings.Default.BackgroundTemplateList[TemplateIndex] = backgroundItem;
-                Settings.Default.Save();
-            }
-            GetBackgroundSource();
-        }
-
-
-        public void RequestEditTemplateItem(object e)
-        {
-            var control = e as Control;
-            if (control == null)
-            {
-                return;
-            }
-            var template = control.DataContext as BackgroundItem;
-            if (template == null)
-            {
-                return;
-            }
-            TemplateIndex = Settings.Default.BackgroundTemplateList.IndexOf(template);
-            template.listIndex = TemplateIndex;
-            ConvertItemToInfo(template, ref BackgroundInfo);
-            this.eventAggregator.GetEvent<EditBackgroundTemplateItemEvent>().Publish(template);
-        }
-
-
-        public void DeleteTemplateItem(object e)
-        {
-            var btn = e as System.Windows.Controls.Button;
-            if (btn == null)
-            {
-                return;
-            }
-            BackgroundItem = btn.DataContext as BackgroundItem;
-            if (BackgroundItem == null)
-            {
-                return;
-            }
-            if (!string.IsNullOrEmpty(BackgroundItem.previewImagePath) && File.Exists(BackgroundItem.previewImagePath))
-            {
-                Settings.Default.AppProperties.NeedToDeletePath.Add(BackgroundItem.previewImagePath);
-            }
-            Settings.Default.BackgroundTemplateList.Remove(BackgroundItem);
-            Settings.Default.Save();
-            BackgroundModColorCollection.Remove(BackgroundItem);
-            GetBackgroundSource();
-        }
-
-        public void DeleteAllTemplateItem()
-        {
-            while (Settings.Default.BackgroundTemplateList.Count != 0)
-            {
-                int temp = 0;
-                var template = Settings.Default.BackgroundTemplateList[temp];
-                if (!string.IsNullOrEmpty(BackgroundItem.previewImagePath)&& File.Exists(BackgroundItem.previewImagePath))
-                {
-                    Settings.Default.AppProperties.NeedToDeletePath.Add(BackgroundItem.previewImagePath);
-                }
-
-                Settings.Default.BackgroundTemplateList.Remove(template);
-                Settings.Default.Save();
-
-                BackgroundModColorCollection.Remove(template);
-            }
-            GetBackgroundSource();
-        }
-
-        public void ConvertItemToInfo(BackgroundItem backgroundItem, ref BackgroundInfo backgroundInfo)
-        {
-            backgroundInfo.BackgroundType = backgroundItem.type;
-            backgroundInfo.Color = backgroundItem.bgColor;
-            backgroundInfo.Horizalign = backgroundItem.horizalign;
-            backgroundInfo.Vertalign = backgroundItem.vertalign;
-            backgroundInfo.VertOffset = backgroundItem.vertOffset;
-            backgroundInfo.Horizalign = backgroundItem.horizalign;
-            backgroundInfo.Opacity = backgroundItem.opacity;
-            backgroundInfo.Rotation = backgroundItem.rotation;
-            backgroundInfo.Scale = backgroundItem.scale;
-            //  backgroundItem.pagRangeMode = backgroundInfo.PageRange;
-
-        }
-
-        public void SendTemplateItemToDocument(BackgroundItem template)
-        {
-            if (template != null)
-            {
-                ConvertItemToInfo(template, ref BackgroundInfo);
-                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(BackgroundInfo);
-            }
-
-        }
-
-
-        public void SelectTemplateItem(object e)
-        {
-            var listBox = e as ListBox;
-            BackgroundItem BackgroundItem = listBox.SelectedItem as BackgroundItem;
-            SendTemplateItemToDocument(BackgroundItem);
-        }
-
-
-        public bool IsNavigationTarget(NavigationContext navigationContext)
-        {
-            return true;
-        }
-
-        public void OnNavigatedFrom(NavigationContext navigationContext)
-        {
-        }
-
-        public void OnNavigatedTo(NavigationContext navigationContext)
-        {
-            InitBackgroundTemplateList();
-        }
-    }
-}
+using Microsoft.Office.Interop.Word;
+using PDF_Office.EventAggregators;
+using PDF_Office.Model.EditTools.Background;
+using PDF_Office.Properties;
+using PDFSettings;
+using Prism.Commands;
+using Prism.Events;
+using Prism.Mvvm;
+using Prism.Regions;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.IO;
+using System.Linq;
+using System.Security.Permissions;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using static System.Windows.Forms.VisualStyles.VisualStyleElement;
+
+namespace PDF_Office.ViewModels.EditTools.Background
+{
+
+    public class BackgroundTemplateListColorContentViewModel : BindableBase, INavigationAware
+    {
+        private readonly IEventAggregator eventAggregator;
+        public BackgroundInfo BackgroundInfo = new BackgroundInfo();
+        public BackgroundItem BackgroundItem = new BackgroundItem();
+        public int TemplateIndex = 0;
+
+        private ObservableCollection<BackgroundItem> backgroundModcolorCollection = new ObservableCollection<BackgroundItem>();
+        public ObservableCollection<BackgroundItem> BackgroundModColorCollection
+        {
+            get { return backgroundModcolorCollection; }
+            set
+            {
+                backgroundModcolorCollection = value;
+                RaisePropertyChanged();
+            }
+        }
+
+        private Visibility _createTemplateVisible;
+        public Visibility CreateTemplateVisible
+        {
+            get { return _createTemplateVisible; }
+            set { SetProperty(ref _createTemplateVisible, value); }
+        }
+
+        public DelegateCommand AddTemplateCommand { get; set; }
+        public DelegateCommand<object> DeleteTemplateItemCommand { get; set; }
+        public DelegateCommand<object> EditTemplateItemCommand { get; set; }
+        public DelegateCommand DeleteAllTemplateItemCommand { get; set; }
+        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);
+            DeleteTemplateItemCommand = new DelegateCommand<object>(DeleteTemplateItem);
+            DeleteAllTemplateItemCommand = new DelegateCommand(DeleteAllTemplateItem);
+            SelectTemplateItemCommand = new DelegateCommand<object>(SelectTemplateItem);
+
+            eventAggregator.GetEvent<SaveEditedBackgroundTemplateItemEvent>().Subscribe(SaveEditedBackgroundTemplateItem, e => e.Unicode == Unicode);
+        }
+
+        private void CheckTemplateListIsEmpty(List<BackgroundItem> backgroundTemplateList)
+        {
+            if (backgroundTemplateList.Count() == 0)
+            {
+                CreateTemplateVisible = Visibility.Visible;
+            }
+            else
+            {
+                CreateTemplateVisible = Visibility.Collapsed;
+            }
+        }
+
+        private void GetBackgroundSource()
+        {
+            List<BackgroundItem> backgroundModColorTemplateList = new List<BackgroundItem>();
+            for (int temp = 0; temp < Settings.Default.BackgroundTemplateList.Count; temp++)
+            {
+                if (Settings.Default.BackgroundTemplateList[temp].type == ComPDFKit.PDFDocument.C_Background_Type.BG_TYPE_COLOR)
+                {
+                    backgroundModColorTemplateList.Add(Settings.Default.BackgroundTemplateList[temp]);
+                }
+            }
+            BackgroundModColorCollection = new ObservableCollection<BackgroundItem>(backgroundModColorTemplateList);
+            CheckTemplateListIsEmpty(backgroundModColorTemplateList);
+        }
+
+        private void InitBackgroundTemplateList()
+        {
+            if (Settings.Default.BackgroundTemplateList == null)
+            {
+                Settings.Default.BackgroundTemplateList = new BackgroundTemplateList();
+            }
+            GetBackgroundSource();
+        }
+
+        public void AddTemplate()
+        {
+            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode
+            {
+                Unicode = Unicode,
+                Status = EnumTemplateListOrCreate.StatusCreate
+            });
+        }
+
+        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;
+                Settings.Default.Save();
+            }
+            GetBackgroundSource();
+        }
+
+
+        public void RequestEditTemplateItem(object e)
+        {
+            var control = e as Control;
+            if (control == null)
+            {
+                return;
+            }
+            var template = control.DataContext as BackgroundItem;
+            if (template == null)
+            {
+                return;
+            }
+            TemplateIndex = Settings.Default.BackgroundTemplateList.IndexOf(template);
+            template.listIndex = TemplateIndex;
+            ConvertItemToInfo(template, ref BackgroundInfo);
+            this.eventAggregator.GetEvent<EditBackgroundTemplateItemEvent>().Publish(new BackgroundItemUnicode
+            {
+                Unicode = Unicode,
+                Status = template
+            });
+        }
+
+
+        public void DeleteTemplateItem(object e)
+        {
+            var btn = e as System.Windows.Controls.Button;
+            if (btn == null)
+            {
+                return;
+            }
+            BackgroundItem = btn.DataContext as BackgroundItem;
+            if (BackgroundItem == null)
+            {
+                return;
+            }
+            if (!string.IsNullOrEmpty(BackgroundItem.previewImagePath) && File.Exists(BackgroundItem.previewImagePath))
+            {
+                Settings.Default.AppProperties.NeedToDeletePath.Add(BackgroundItem.previewImagePath);
+            }
+            Settings.Default.BackgroundTemplateList.Remove(BackgroundItem);
+            Settings.Default.Save();
+            BackgroundModColorCollection.Remove(BackgroundItem);
+            GetBackgroundSource();
+        }
+
+        public void DeleteAllTemplateItem()
+        {
+            while (Settings.Default.BackgroundTemplateList.Count != 0)
+            {
+                int temp = 0;
+                var template = Settings.Default.BackgroundTemplateList[temp];
+                if (!string.IsNullOrEmpty(BackgroundItem.previewImagePath)&& File.Exists(BackgroundItem.previewImagePath))
+                {
+                    Settings.Default.AppProperties.NeedToDeletePath.Add(BackgroundItem.previewImagePath);
+                }
+
+                Settings.Default.BackgroundTemplateList.Remove(template);
+                Settings.Default.Save();
+
+                BackgroundModColorCollection.Remove(template);
+            }
+            GetBackgroundSource();
+        }
+
+        public void ConvertItemToInfo(BackgroundItem backgroundItem, ref BackgroundInfo backgroundInfo)
+        {
+            backgroundInfo.BackgroundType = backgroundItem.type;
+            backgroundInfo.Color = backgroundItem.bgColor;
+            backgroundInfo.Horizalign = backgroundItem.horizalign;
+            backgroundInfo.Vertalign = backgroundItem.vertalign;
+            backgroundInfo.VertOffset = backgroundItem.vertOffset;
+            backgroundInfo.Horizalign = backgroundItem.horizalign;
+            backgroundInfo.Opacity = backgroundItem.opacity;
+            backgroundInfo.Rotation = backgroundItem.rotation;
+            backgroundInfo.Scale = backgroundItem.scale;
+            //  backgroundItem.pagRangeMode = backgroundInfo.PageRange;
+
+        }
+
+        public void SendTemplateItemToDocument(BackgroundItem template)
+        {
+            if (template != null)
+            {
+                ConvertItemToInfo(template, ref BackgroundInfo);
+                eventAggregator.GetEvent<SetBackgroundEvent>().Publish(new BackgroundInfoUnicode
+                {
+                    Unicode = Unicode,
+                    Status = BackgroundInfo
+                });
+            }
+
+        }
+
+
+        public void SelectTemplateItem(object e)
+        {
+            var listBox = e as ListBox;
+            BackgroundItem BackgroundItem = listBox.SelectedItem as BackgroundItem;
+            SendTemplateItemToDocument(BackgroundItem);
+        }
+
+
+        public bool IsNavigationTarget(NavigationContext navigationContext)
+        {
+            return true;
+        }
+
+        public void OnNavigatedFrom(NavigationContext navigationContext)
+        {
+        }
+
+        public void OnNavigatedTo(NavigationContext navigationContext)
+        {
+
+            navigationContext.Parameters.TryGetValue<string>("UniCode", out unicode);
+            InitBackgroundTemplateList();
+        }
+    }
+}

+ 23 - 7
PDF Office/ViewModels/EditTools/Background/BackgroundTemplateListFileContentViewModel.cs

@@ -50,8 +50,12 @@ namespace PDF_Office.ViewModels.EditTools.Background
         public DelegateCommand DeleteAllTemplateItemCommand { get; set; }
         public DelegateCommand<object> SelectTemplateItemCommand { get; set; }
 
-        BackgroundTemplateListFileContentViewModel(IEventAggregator eventAggregator)
+        public string unicode = null;
+        public string Unicode = null;
+
+        public BackgroundTemplateListFileContentViewModel(IEventAggregator eventAggregator)
         {
+            Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
             this.eventAggregator = eventAggregator;
             AddTemplateCommand = new DelegateCommand(AddTemplate);
             EditTemplateItemCommand = new DelegateCommand<object>(RequestEditTemplateItem);
@@ -59,7 +63,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);
 
         }
 
@@ -102,11 +106,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;
@@ -129,8 +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(BackgroundItem);
+            this.eventAggregator.GetEvent<EditBackgroundTemplateItemEvent>().Publish(new BackgroundItemUnicode
+            {
+                Unicode = Unicode,
+                Status = template
+            });
         }
 
         public void DeleteTemplateItem(object e)
@@ -199,7 +211,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)

+ 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
+            });
         }
     }
 }

+ 131 - 28
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();
@@ -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,22 +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)
             {
-                if (enumTextOrFile == EnumTextOrFile.StatusFile && FileNameText != "")
+                var watermarkItem = new WatermarkItem();
+                ConvertInfoToItem(ref watermarkItem, WatermarkInfo);
+                Settings.Default.WatermarkTemplateList[TemplateWatermarkItem.listIndex] = watermarkItem;
+                Settings.Default.Save();
+                this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode
                 {
-                    var watermarkItem = new WatermarkItem();
-                    ConvertInfoToItem(ref watermarkItem, WatermarkInfo);
-
-                    this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusTemplate);
-                    this.eventAggregator.GetEvent<SaveEditedWatermarkTemplateItemEvent>().Publish(watermarkItem);
-                }
+                    Unicode = Unicode,
+                    Status = EnumTemplateListOrCreate.StatusTemplate
+                });
             }
         }
 
@@ -416,7 +515,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         /// </summary>
         public void InitComponentBySelectedInfo()
         {
-
+            ConvertItemToInfo(TemplateWatermarkItem, ref WatermarkInfo);
         }
 
         public void OpenFile()
@@ -438,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
+                });
             }
         }
 
@@ -471,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>