liyijie před 2 roky
rodič
revize
91bf3b0ce0

+ 1 - 1
PDF Office/Model/EditTools/Watermark/WatermarkCreateModel.cs

@@ -37,7 +37,7 @@ namespace PDF_Office.Model.EditTools.Watermark
         /// <summary>
         /// 文本水印大小;
         /// </summary>
-        public string TextSize  = "5";
+        public float TextSize  = 5;
 
         /// <summary>
         /// 图片水印内容;

+ 2 - 2
PDF Office/ViewModels/EditTools/Watermark/WatermarkContentViewModel.cs

@@ -12,7 +12,7 @@ using System.Windows;
 
 namespace PDF_Office.ViewModels.EditTools.Watermark
 {
-    public class WatermarkContentViewModel : BindableBase,INavigationAware
+    public class WatermarkContentViewModel : BindableBase, INavigationAware
     {
         public IEventAggregator eventAggregator;
         public IRegionManager watermarkRegion;
@@ -168,7 +168,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         {
             NavigationParameters param = new NavigationParameters();
             param.Add(ParameterNames.PDFViewer, PDFViewer);
-            watermarkRegion.RequestNavigate(WatermarkDocumentRegionName, WatermarkDocumentName,param);
+            watermarkRegion.RequestNavigate(WatermarkDocumentRegionName, WatermarkDocumentName, param);
             WatermarkDocumentVisible = Visibility.Visible;
         }
 

+ 17 - 1
PDF Office/ViewModels/EditTools/Watermark/WatermarkCreateBaseContentViewModel.cs

@@ -52,8 +52,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         }
 
         public DelegateCommand<object> ChangeCreateModCommand { get; set; }
+
         public DelegateCommand EnterTemplateListCommand { get; set; }
 
+        public DelegateCommand SaveToTemplateListCommand { get; set; }
+
         public WatermarkCreateBaseContentViewModel(IRegionManager regionManager, IEventAggregator eventAggregator)
         {
             this.eventAggregator = eventAggregator;
@@ -61,6 +64,19 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             WatermarkCreateRegionName = Guid.NewGuid().ToString();
             ChangeCreateModCommand = new DelegateCommand<object>(ChangeCreateMod);
             EnterTemplateListCommand = new DelegateCommand(EnterTemplateList);
+            SaveToTemplateListCommand = new DelegateCommand(SaveToTemplateList);
+        }
+
+        public void SaveToTemplateList()
+        {
+            if (CurrentCreateModName == "WatermarkCreateTextContent")
+            {
+                this.eventAggregator.GetEvent<SaveWatermarkTemplateEvent>().Publish(EnumTextOrFile.StatusText);
+            }
+            if (CurrentCreateModName == "WatermarkCreateFileContent")
+            {
+                this.eventAggregator.GetEvent<SaveWatermarkTemplateEvent>().Publish(EnumTextOrFile.StatusFile);
+            }
         }
 
         public void EnterTemplateList()
@@ -72,7 +88,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         {
             NavigationParameters param = new NavigationParameters();
             param.Add(ParameterNames.PDFViewer, PDFViewer);
-            watermarkCreateRegion.RequestNavigate(WatermarkCreateRegionName, currentCreateName,param);
+            watermarkCreateRegion.RequestNavigate(WatermarkCreateRegionName, currentCreateName, param);
             watermarkCreateVisible = System.Windows.Visibility.Visible;
         }
 

+ 38 - 8
PDF Office/ViewModels/EditTools/Watermark/WatermarkCreateFileContentViewModel.cs

@@ -270,29 +270,52 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         public WatermarkCreateFileContentViewModel(IEventAggregator eventAggregator)
         {
             this.eventAggregator = eventAggregator;
-            WatermarkInfo.WatermarkType=C_Watermark_Type.WATERMARK_TYPE_IMG;
+            WatermarkInfo.WatermarkType = C_Watermark_Type.WATERMARK_TYPE_IMG;
             ChangeLocationCommand = new DelegateCommand<object>(ChangeLocation);
             OpenFileCommand = new DelegateCommand(OpenFile);
             InitList();
             InitWatermarkInfo();
             InitLocationButtonMatrix();
+            eventAggregator.GetEvent<ConfirmEditToolsWatermarkEvent>().Subscribe(ConfirmEditToolsWatermark);
             eventAggregator.GetEvent<SaveWatermarkTemplateEvent>().Subscribe(SaveWatermarkTemplate);
         }
 
         public void SaveWatermarkTemplate(EnumTextOrFile enumTextOrFile)
         {
-            if (enumTextOrFile == EnumTextOrFile.StatusFile && FileNameText!="")
+            if (enumTextOrFile == EnumTextOrFile.StatusFile && FileNameText != "")
             {
                 SaveCurrentTemplate();
             }
         }
 
+        public void ConvertInfoToItem(ref WatermarkItem watermarkItem, WatermarkInfo watermarkInfo)
+        {
+            if (watermarkInfo != null)
+            {
+                watermarkItem.type = watermarkInfo.WatermarkType;
+                watermarkItem.text = watermarkInfo.Text;
+                watermarkItem.fontSize = watermarkInfo.TextSize;
+                watermarkItem.fontName = watermarkInfo.FontName;
+                watermarkItem.textcolor = watermarkInfo.TextColor;
+                watermarkItem.horizalign = watermarkInfo.WatermarkHorizalign;
+                watermarkItem.vertalign = watermarkInfo.WatermarkVertalign;
+                watermarkItem.isFullScreen = watermarkInfo.Isfull;
+                watermarkItem.isfront = watermarkInfo.IsFront;
+                watermarkItem.opacity = watermarkInfo.Opacity;
+                watermarkItem.rotation = watermarkInfo.Rotation;
+                watermarkItem.vertOffset = watermarkInfo.VertOffset;
+                watermarkItem.horizOffset = watermarkInfo.HorizOffset;
+                watermarkItem.verticalSpacing = watermarkInfo.VerticalSpacing;
+                watermarkItem.horizontalSpacing = watermarkInfo.HorizontalSpacing;
+                watermarkItem.pageRange = watermarkInfo.PageRange;
+            }
+        }
+
         public void SaveCurrentTemplate()
         {
             var watermarkItem = new WatermarkItem();
-            watermarkItem.pageRange = "0";
-            watermarkItem.type = ComPDFKit.PDFWatermark.C_Watermark_Type.WATERMARK_TYPE_IMG;
-            watermarkItem.templateName += Settings.Default.BackgroundIndex.ToString();
+            ConvertInfoToItem(ref watermarkItem, WatermarkInfo);
+            watermarkItem.templateName += Settings.Default.WatermarkIndex.ToString();
             Settings.Default.WatermarkTemplateList.Add(watermarkItem);
             Settings.Default.Save();
             this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusTemplate);
@@ -361,6 +384,13 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             }
         }
 
+        public void ConfirmEditToolsWatermark()
+        {
+
+            eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+
+        }
+
         public void OpenFile()
         {
             System.Windows.Forms.OpenFileDialog dlg = new System.Windows.Forms.OpenFileDialog();
@@ -378,12 +408,12 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
                 {
                     EditToolsHelper.ChooseFile(dlg.FileName, ref WatermarkInfo);
                 }
-                CreateFileVisible=Visibility.Visible;
+                CreateFileVisible = Visibility.Visible;
                 eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
             }
         }
 
-        public  async void GetBitmapFromDocment(string filePath)
+        public async void GetBitmapFromDocment(string filePath)
         {
             CPDFDocument document = CPDFDocument.InitWithFilePath(filePath);
             CPDFPage page = document.PageAtIndex(0);
@@ -392,7 +422,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 page.RenderPageBitmap(0, 0, (int)page.PageSize.Width, (int)page.PageSize.Height, 0xffffffff, bmp_data, 1);
             });
-            WatermarkInfo.ImageArray= bmp_data;
+            WatermarkInfo.ImageArray = bmp_data;
             WatermarkInfo.ImageWidth = (int)page.PageSize.Width;
             WatermarkInfo.ImageHeight = (int)page.PageSize.Height;
             document.ReleasePages();

+ 38 - 8
PDF Office/ViewModels/EditTools/Watermark/WatermarkCreateTextContentViewModel.cs

@@ -157,9 +157,9 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             get { return _textValue; }
             set
             {
-             _textValue= value;
-               
-                
+                _textValue = value;
+
+
             }
         }
 
@@ -369,6 +369,8 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             InitList();
             InitWatermarkInfo();
             InitLocationButtonMatrix();
+            eventAggregator.GetEvent<ConfirmEditToolsWatermarkEvent>().Subscribe(ConfirmEditToolsWatermark);
+
             eventAggregator.GetEvent<SaveWatermarkTemplateEvent>().Subscribe(SaveWatermarkTemplate);
         }
 
@@ -380,12 +382,35 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             }
         }
 
+        public void ConvertInfoToItem(ref WatermarkItem watermarkItem, WatermarkInfo watermarkInfo)
+        {
+            if (watermarkInfo != null)
+            {
+                watermarkItem.type = watermarkInfo.WatermarkType;
+                watermarkItem.text = watermarkInfo.Text;
+                watermarkItem.fontSize = watermarkInfo.TextSize;
+                watermarkItem.fontName = watermarkInfo.FontName;
+                watermarkItem.textcolor = watermarkInfo.TextColor;
+                watermarkItem.horizalign = watermarkInfo.WatermarkHorizalign;
+                watermarkItem.vertalign = watermarkInfo.WatermarkVertalign;
+                watermarkItem.isFullScreen = watermarkInfo.Isfull;
+                watermarkItem.isfront = watermarkInfo.IsFront;
+                watermarkItem.opacity = watermarkInfo.Opacity;
+                watermarkItem.rotation = watermarkInfo.Rotation;
+                watermarkItem.vertOffset = watermarkInfo.VertOffset;
+                watermarkItem.horizOffset = watermarkInfo.HorizOffset;
+                watermarkItem.verticalSpacing = watermarkInfo.VerticalSpacing;
+                watermarkItem.horizontalSpacing = watermarkInfo.HorizontalSpacing;
+                watermarkItem.pageRange = watermarkInfo.PageRange;
+            }
+        }
+
+
         public void SaveCurrentTemplate()
         {
             var watermarkItem = new WatermarkItem();
-            watermarkItem.pageRange = "0";
-            watermarkItem.type = ComPDFKit.PDFWatermark.C_Watermark_Type.WATERMARK_TYPE_TEXT;
-            watermarkItem.templateName += Settings.Default.BackgroundIndex.ToString();
+            ConvertInfoToItem(ref watermarkItem, WatermarkInfo);
+            watermarkItem.templateName += Settings.Default.WatermarkIndex.ToString();
             Settings.Default.WatermarkTemplateList.Add(watermarkItem);
             Settings.Default.Save();
             this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusTemplate);
@@ -456,11 +481,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         {
             if (Index == 0)
             {
-                WatermarkInfo.TextSize = "10";
+                WatermarkInfo.TextSize = 10;
             }
             else
             {
-                WatermarkInfo.TextSize = (Index + 7).ToString();
+                WatermarkInfo.TextSize = Index + 7;
             }
         }
 
@@ -476,6 +501,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             }
         }
 
+        public void ConfirmEditToolsWatermark()
+        {
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+        }
+
         private void InitList()
         {
             InitOpacityList();

+ 50 - 89
PDF Office/ViewModels/EditTools/Watermark/WatermarkDocumentContentViewModel.cs

@@ -45,104 +45,62 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
 
         public string ViewerRegionName { get; set; }
 
-        private ImageSource _imageSource = null;
-        public ImageSource ImageSource
-        {
-            get { return _imageSource; }
-            set
-            {
-                SetProperty(ref _imageSource, value);
-            }
-        }
-
         public WatermarkDocumentContentViewModel(IEventAggregator eventAggregator, IRegionManager regionManager)
         {
             this.regionManager = regionManager;
             this.eventAggregator = eventAggregator;
             eventAggregator.GetEvent<SetWatermarkEvent>().Subscribe(SetWatermark);
-            eventAggregator.GetEvent<ConfirmEditToolsWatermarkEvent>().Subscribe(ConfirmEditToolsWatermark);
             ViewerRegionName = RegionNames.WatermarkViwerRegionName;
 
         }
 
-        public void ConfirmEditToolsWatermark()
-        {
-            if (watermarkInfo != null)
-            {
-                CreateWatermark(PDFViewer.Document, true);
-            }
-        }
-
         public void SetWatermark(WatermarkInfo watermarkInfo)
         {
             this.watermarkInfo = watermarkInfo;
             CreateWatermark(PDFViewer.Document);
-            //PDFViewer.Document.PdfToImage("0-1", "C:\\Users\\kdanmobile\\Desktop\\888\\");
-            //PDFViewer.Document.WriteToFilePath("C:\\Users\\kdanmobile\\Desktop\\888\\sb22222.pdf");
+            PDFViewer.Document.PdfToImage("0-1", "C:\\Users\\kdanmobile\\Desktop\\888\\");
+            PDFViewer.Document.WriteToFilePath("C:\\Users\\kdanmobile\\Desktop\\888\\sb22222_.pdf");
             PDFViewer.InvalidChildVisual(false);
         }
 
         public void CreateWatermark(CPDFDocument document, bool IsNewDoc = false)
         {
-            if (watermarkInfo != null) { 
-                background = document.GetBackground();
-
-            background.SetBackgroundType(C_Background_Type.BG_TYPE_COLOR);
-
-            background.SetScale(1);
-            background.SetColor(watermarkInfo.TextColor);
-
-            background.SetRotation(0);
-            background.SetOpacity(255);
-            background.SetVertalign(C_Background_Vertalign.BG_VERTALIGN_CENTER);
-            background.SetHorizalign(C_Background_Horizalign.BG_HORIZALIGN_CENTER);
-            background.SetYOffset(0);
-            background.SetXOffset(0);
-            background.SetAllowsPrint(true);
-            background.SetAllowsView(true);
-            background.SetPages("0");
-            background.Update();
-        }
-            //if (watermarkInfo != null)
-            //{
-            //    document.DeleteWatermarks();
-            //    if (watermarkInfo.WatermarkType == C_Watermark_Type.WATERMARK_TYPE_TEXT)
-            //    {
-            //        watermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_TEXT);
-            //        watermark.SetText(watermarkInfo.Text);
-            //        if (watermarkInfo.TextSize == null)
-            //        {
-            //            watermarkInfo.TextSize = "6";
-            //        }
-            //        watermark.SetFontName(watermarkInfo.FontName);
-            //        watermark.SetFontSize(float.Parse(watermarkInfo.TextSize));
-            //        watermark.SetTextRGBColor(watermarkInfo.TextColor);
-            //    }
-            //    else
-            //    {
-
-            //        watermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_IMG);
-            //        if (watermarkInfo.ImageArray != null)
-            //        {
-            //            watermark.SetImage(watermarkInfo.ImageArray, watermarkInfo.ImageWidth, watermarkInfo.ImageHeight);
-            //        }
-            //        watermark.SetScale(0.1f);
-            //    }
-            //    watermark.SetRotation(watermarkInfo.Rotation);
-            //    watermark.SetOpacity(watermarkInfo.Opacity);
-            //    watermark.SetFront(watermarkInfo.IsFront);
-            //    watermark.SetVertalign(watermarkInfo.WatermarkVertalign);
-            //    watermark.SetHorizalign(watermarkInfo.WatermarkHorizalign);
-            //    watermark.SetFullScreen(watermarkInfo.Isfull);
-            //    watermark.SetVertOffset(watermarkInfo.VertOffset);
-            //    watermark.SetHorizOffset(watermarkInfo.HorizOffset);
-            //    watermark.SetHorizontalSpacing(watermarkInfo.HorizontalSpacing);
-            //    watermark.SetVerticalSpacing(watermarkInfo.VerticalSpacing);
-            //    if (IsNewDoc) { watermark.SetPages("0");  }
-            //    else { watermark.SetPages(watermarkInfo.PageRange); }
-            //    watermark.CreateWatermark();
-            //    watermark.UpdateWatermark();
-            //}
+            if (watermarkInfo != null)
+            {
+                document.DeleteWatermarks();
+                if (watermarkInfo.WatermarkType == C_Watermark_Type.WATERMARK_TYPE_TEXT)
+                {
+                    watermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_TEXT);
+                    watermark.SetText(watermarkInfo.Text);
+                    watermark.SetFontName(watermarkInfo.FontName);
+                    watermark.SetFontSize(watermarkInfo.TextSize);
+                    watermark.SetTextRGBColor(watermarkInfo.TextColor);
+                }
+                else
+                {
+
+                    watermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_IMG);
+                    if (watermarkInfo.ImageArray != null)
+                    {
+                        watermark.SetImage(watermarkInfo.ImageArray, watermarkInfo.ImageWidth, watermarkInfo.ImageHeight);
+                    }
+                    watermark.SetScale(0.1f);
+                }
+                watermark.SetRotation(watermarkInfo.Rotation);
+                watermark.SetOpacity(watermarkInfo.Opacity);
+                watermark.SetFront(watermarkInfo.IsFront);
+                watermark.SetVertalign(watermarkInfo.WatermarkVertalign);
+                watermark.SetHorizalign(watermarkInfo.WatermarkHorizalign);
+                watermark.SetFullScreen(watermarkInfo.Isfull);
+                watermark.SetVertOffset(watermarkInfo.VertOffset);
+                watermark.SetHorizOffset(watermarkInfo.HorizOffset);
+                watermark.SetHorizontalSpacing(watermarkInfo.HorizontalSpacing);
+                watermark.SetVerticalSpacing(watermarkInfo.VerticalSpacing);
+                if (IsNewDoc) { watermark.SetPages("0"); }
+                else { watermark.SetPages(watermarkInfo.PageRange); }
+                watermark.CreateWatermark();
+                watermark.UpdateWatermark();
+            }
         }
 
 
@@ -156,21 +114,24 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 List<int> PageIndexLists = new List<int>();
                 foreach (DrawPageData drawPageData in e.DrawPages)
-                {   
-                    if(watermarkInfo != null) {
+                {
+                    if (watermarkInfo != null)
+                    {
                         char[] enumerationSeparator = new char[] { ',' };
                         char[] rangeSeparator = new char[] { '-' };
                         if (CommonHelper.GetPagesInRange(ref PageIndexLists, watermarkInfo.PageRange, Document.PageCount, enumerationSeparator, rangeSeparator, true))
                         { //TODO
                             Trace.WriteLine(CommonHelper.GetPagesInRange(ref PageIndexLists, watermarkInfo.PageRange, Document.PageCount, enumerationSeparator, rangeSeparator, true));
                             Trace.WriteLine(drawPageData.PageIndex);
-                            foreach (var abbb in PageIndexLists ) {
+                            foreach (var abbb in PageIndexLists)
+                            {
 
-                                Trace.WriteLine("smgui _______"+abbb);
+                                Trace.WriteLine("smgui _______" + abbb);
                             }
-                            if (PageIndexLists.Contains(drawPageData.PageIndex-1)) {
-                                
-                                WriteableBitmap waterMarkBitmap = GetWaterMark(PDFViewer.Document, e.Zoom, drawPageData.PageIndex);
+                            if (PageIndexLists.Contains(drawPageData.PageIndex - 1))
+                            {
+
+                                WriteableBitmap waterMarkBitmap = GetWatermark(PDFViewer.Document, e.Zoom, drawPageData.PageIndex);
                                 e.DrawContext.DrawImage(waterMarkBitmap, drawPageData.PageBound);
                             }
                         }
@@ -178,13 +139,13 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
                 }
             }
         }
-        private WriteableBitmap GetWaterMark(CPDFDocument oldDoc, double zoom, int pageIndex)
+        private WriteableBitmap GetWatermark(CPDFDocument oldDoc, double zoom, int pageIndex)
         {
             Size pageSize = oldDoc.GetPageSize(pageIndex);
 
             CPDFDocument newDoc = CPDFDocument.CreateDocument();
             newDoc.InsertPage(0, pageSize.Width, pageSize.Height, null);
-            CreateWatermark(newDoc,true);
+            CreateWatermark(newDoc, true);
             CPDFPage newPage = newDoc.PageAtIndex(0);
             double scale = 96.0 / 72.0;
             zoom = zoom * scale;

+ 1 - 1
PDF Office/ViewModels/EditTools/Watermark/WatermarkTemplateListBaseContentViewModel.cs

@@ -18,7 +18,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         private string WatermarkTemplateListTextContentName = "WatermarkTemplateListTextContent";
         private string WatermarkTemplateListFileContentName = "WatermarkTemplateListFileContent";
 
-        public bool IsFirstEnter=true;
+        public bool IsFirstEnter = true;
 
         public EnumTextOrFile CurrentCreateMod;
 

+ 21 - 14
PDF Office/ViewModels/EditTools/Watermark/WatermarkTemplateListFileContentViewModel.cs

@@ -20,7 +20,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
     {
         private readonly IEventAggregator eventAggregator;
 
-        public WatermarkInfo WatermarkInfo;
+        public WatermarkInfo WatermarkInfo = new WatermarkInfo();
         public ObservableCollection<WatermarkItem> watermarkModFileCollection = new ObservableCollection<WatermarkItem>();
         public ObservableCollection<WatermarkItem> WatermarkModFileCollection
         {
@@ -93,13 +93,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
 
         public void AddTemplate()
         {
-            var watermarkItem = new WatermarkItem();
-            watermarkItem.pageRange = "0";
-            watermarkItem.type = ComPDFKit.PDFWatermark.C_Watermark_Type.WATERMARK_TYPE_IMG;
-            watermarkItem.templateName += Settings.Default.WatermarkIndex.ToString();
-            Settings.Default.WatermarkTemplateList.Add(watermarkItem);
-            Settings.Default.Save();
-            GetWatermarkSource();
+            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusCreate);
         }
 
         public void DeleteTemplateItem(object e)
@@ -114,8 +108,6 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 return;
             }
-            Settings.Default.AppProperties.NeedToDeletePath.Add(template.previeImagePath);
-            Settings.Default.AppProperties.NeedToDeletePath.Add(template.imagepath);
 
             Settings.Default.WatermarkTemplateList.Remove(template);
             Settings.Default.Save();
@@ -131,9 +123,6 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 int temp = 0;
                 var template = Settings.Default.WatermarkTemplateList[temp];
-                Settings.Default.AppProperties.NeedToDeletePath.Add(template.previeImagePath);
-                Settings.Default.AppProperties.NeedToDeletePath.Add(template.imagepath);
-
                 Settings.Default.WatermarkTemplateList.Remove(template);
                 Settings.Default.Save();
 
@@ -151,7 +140,25 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
 
         public void ConvertItemToInfo(WatermarkItem watermarkItem, ref WatermarkInfo watermarkInfo)
         {
-
+            if (watermarkItem != null)
+            {
+                watermarkInfo.WatermarkType = watermarkItem.type;
+                watermarkInfo.ImageWidth = watermarkItem.imageWidth;
+                watermarkInfo.ImageHeight = watermarkItem.imageHeight;
+                watermarkInfo.ImageArray = watermarkItem.imageArray;
+                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;
+                watermarkInfo.PageRange = watermarkItem.pageRange;
+            }
         }
 
         public void SendTemplateItemToDocument(WatermarkItem WatermarkItem)

+ 26 - 18
PDF Office/ViewModels/EditTools/Watermark/WatermarkTemplateListTextContentViewModel.cs

@@ -18,7 +18,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
     public class WatermarkTemplateListTextContentViewModel : BindableBase, INavigationAware
     {
         private readonly IEventAggregator eventAggregator;
-        public WatermarkInfo WatermarkInfo;
+        public WatermarkInfo WatermarkInfo = new WatermarkInfo();
         public ObservableCollection<WatermarkItem> watermarkModTextCollection = new ObservableCollection<WatermarkItem>();
         public ObservableCollection<WatermarkItem> WatermarkModTextCollection
         {
@@ -51,7 +51,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             SelectTemplateItemCommand = new DelegateCommand<object>(SelectTemplateItem);
         }
 
-        private void CheckTemplateListIsEmpty(List<WatermarkItem>watermarkTemplateList)
+        private void CheckTemplateListIsEmpty(List<WatermarkItem> watermarkTemplateList)
         {
             if (watermarkTemplateList.Count() == 0)
             {
@@ -65,17 +65,17 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
 
         private void GetWatermarkSource()
         {
-            List<WatermarkItem>watermarkModTextTemplateList = new List<WatermarkItem>();
+            List<WatermarkItem> watermarkModTextTemplateList = new List<WatermarkItem>();
             for (int temp = 0; temp < Settings.Default.WatermarkTemplateList.Count; temp++)
             {
                 if (Settings.Default.WatermarkTemplateList[temp].type == ComPDFKit.PDFWatermark.C_Watermark_Type.WATERMARK_TYPE_TEXT)
                 {
-                   
 
-                   watermarkModTextTemplateList.Add(Settings.Default.WatermarkTemplateList[temp]);
+
+                    watermarkModTextTemplateList.Add(Settings.Default.WatermarkTemplateList[temp]);
                 }
             }
-           WatermarkModTextCollection = new ObservableCollection<WatermarkItem>(watermarkModTextTemplateList);
+            WatermarkModTextCollection = new ObservableCollection<WatermarkItem>(watermarkModTextTemplateList);
             CheckTemplateListIsEmpty(watermarkModTextTemplateList);
         }
 
@@ -92,13 +92,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
 
         public void AddTemplate()
         {
-            var watermarkItem = new WatermarkItem();
-            watermarkItem.pageRange = "0";
-            watermarkItem.type = ComPDFKit.PDFWatermark.C_Watermark_Type.WATERMARK_TYPE_TEXT;
-            watermarkItem.templateName += Settings.Default.WatermarkIndex.ToString();
-            Settings.Default.WatermarkTemplateList.Add(watermarkItem);
-            Settings.Default.Save();
-            GetWatermarkSource();
+            this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusCreate);
         }
 
         public void DeleteTemplateItem(object e)
@@ -113,8 +107,6 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 return;
             }
-            Settings.Default.AppProperties.NeedToDeletePath.Add(template.previeImagePath);
-            Settings.Default.AppProperties.NeedToDeletePath.Add(template.imagepath);
 
             Settings.Default.WatermarkTemplateList.Remove(template);
             Settings.Default.Save();
@@ -130,9 +122,6 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 int temp = 0;
                 var template = Settings.Default.WatermarkTemplateList[temp];
-                Settings.Default.AppProperties.NeedToDeletePath.Add(template.previeImagePath);
-                Settings.Default.AppProperties.NeedToDeletePath.Add(template.imagepath);
-
                 Settings.Default.WatermarkTemplateList.Remove(template);
                 Settings.Default.Save();
 
@@ -150,6 +139,25 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
 
         public void ConvertItemToInfo(WatermarkItem watermarkItem, ref WatermarkInfo watermarkInfo)
         {
+            if (watermarkItem != null)
+            {
+                watermarkInfo.WatermarkType = watermarkItem.type;
+                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;
+                watermarkInfo.PageRange = watermarkItem.pageRange;
+            }
 
         }
 

+ 82 - 82
PDF Office/Views/EditTools/Watermark/WatermarkTemplateListFileContent.xaml

@@ -1,84 +1,84 @@
 <UserControl x:Class="PDF_Office.Views.EditTools.Watermark.WatermarkTemplateListFileContent"
-             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-             xmlns:prism="http://prismlibrary.com/"             
-             prism:ViewModelLocator.AutoWireViewModel="True"
-             xmlns:data ="clr-namespace:PDFSettings;assembly=PDFSettings"
-               xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
-             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:watermark="clr-namespace:PDF_Office.ViewModels.EditTools.Watermark" d:DataContext="{d:DesignInstance Type=watermark:WatermarkTemplateListFileContentViewModel}"
-             mc:Ignorable="d"
-             d:DesignHeight="632"
-             d:DesignWidth="260">
-
-    <UserControl.Resources>
-        <ContextMenu x:Key="FlyoutMenu" FontSize="14" >
-            <ContextMenu.ItemContainerStyle>
-                <Style TargetType="{x:Type MenuItem}">
-                    <Setter Property="Padding" Value="0,8,0,8"/>
-                    <Setter Property="VerticalContentAlignment" Value="Center"/>
-                </Style>
-            </ContextMenu.ItemContainerStyle>
-            <MenuItem Name="MenuEdit" Header="编辑模板" Click="MenuEdit_Click" >
-            </MenuItem>
-            <MenuItem Name="MenuDeleteCurrent" Header="删除模板"  Click="MenuDeleteCurrent_Click">
-            </MenuItem>
-            <MenuItem Name="MenuDeleteAll" Header="删除全部" Click="MenuDeleteAll_Click"></MenuItem>
-        </ContextMenu>
-    </UserControl.Resources>
-    
-    <Grid Background="#F3F3F3">
-        <ListBox Name="FileWatermarkListbox" 
-                                Width="240" 
-                                BorderThickness="0"
-                                ScrollViewer.CanContentScroll="True"
-                                ScrollViewer.HorizontalScrollBarVisibility="Disabled"
-                                ScrollViewer.VerticalScrollBarVisibility="Hidden"
-                                VirtualizingPanel.IsVirtualizing="True"
-                                VirtualizingPanel.VirtualizationMode="Standard"
-                                VirtualizingPanel.CacheLengthUnit="Page"
-                                VirtualizingPanel.CacheLength="1"
-                                VirtualizingPanel.ScrollUnit="Pixel"   
-                                Background="#F3F3F3"
-                 ItemsSource="{Binding WatermarkModFileCollection}"
-                 SelectionChanged="ListBox_SelectionChanged">
-            <ListBox.ItemContainerStyle>
-                <Style TargetType="ListBoxItem">
-                    <Setter Property="Margin" Value="0"/>
-                    <Setter Property="Padding" Value="8 0 8 0"/>
-                    <!--<Setter Property="ContextMenu" Value="{StaticResource FlyoutMenu}"/>-->
-                    <Setter Property="Template" Value="{DynamicResource EditToolsItemControlTemplate}"/>
-                </Style>
-            </ListBox.ItemContainerStyle>
-            <ListBox.ItemTemplate>
-                <DataTemplate DataType="{x:Type data:WatermarkItem}">
-                    <StackPanel Name="itemPanel" >
-                        <Grid Height="160" Width=" 128" Background="Blue">
-                            <Label  Height="160" Width=" 128"></Label>
-                            <Label  Height="160" Width=" 128"></Label>
-                            <Button Name="EditTemplateBtn" Height="43" Width="63" HorizontalAlignment="Left" VerticalAlignment="Bottom"></Button>
-                            <Button Name="DeleteTemplateBtn"  Height="43" Width="63" HorizontalAlignment="Right" VerticalAlignment="Bottom" Click="DeleteTemplateBtn_Click" >
-                            </Button>
-                        </Grid>
-                    </StackPanel>
-                    <DataTemplate.Triggers>
-                        <Trigger Property="IsMouseOver" Value="True">
-                            <Setter TargetName="EditTemplateBtn" Property="Visibility" Value="Visible"/>
-                            <Setter TargetName="DeleteTemplateBtn" Property="Visibility" Value="Visible"/>
-                        </Trigger>
-                        <Trigger Property="IsMouseOver" Value="False">
-                            <Setter TargetName="EditTemplateBtn" Property="Visibility" Value="Collapsed"/>
-                            <Setter TargetName="DeleteTemplateBtn" Property="Visibility" Value="Collapsed"/>
-                        </Trigger>
-                    </DataTemplate.Triggers>
-                </DataTemplate>
-            </ListBox.ItemTemplate>
-        </ListBox>
-        <Grid Width="140" Margin="64,154,56,312" Visibility="{Binding CreateTemplateVisible, Mode=OneWay}">
-            <StackPanel Orientation="Vertical">
-                <Label Height="87" Width="87" HorizontalAlignment="Center" Background="BlueViolet"></Label>
-                <TextBlock Height="24" FontSize="14" Text="请先创建一个背景模板" Margin="0,8,0,0" VerticalAlignment="Center" ></TextBlock>
-                <Button Height="24" Width="44" Margin="0,12,0,0" Content ="新建" Command="{Binding AddTemplateCommand}"></Button>
-            </StackPanel>
-        </Grid>
-    </Grid>
+             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+             xmlns:prism="http://prismlibrary.com/"             
+             prism:ViewModelLocator.AutoWireViewModel="True"
+             xmlns:data ="clr-namespace:PDFSettings;assembly=PDFSettings"
+               xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:watermark="clr-namespace:PDF_Office.ViewModels.EditTools.Watermark" d:DataContext="{d:DesignInstance Type=watermark:WatermarkTemplateListFileContentViewModel}"
+             mc:Ignorable="d"
+             d:DesignHeight="632"
+             d:DesignWidth="260">
+
+    <UserControl.Resources>
+        <ContextMenu x:Key="FlyoutMenu" FontSize="14" >
+            <ContextMenu.ItemContainerStyle>
+                <Style TargetType="{x:Type MenuItem}">
+                    <Setter Property="Padding" Value="0,8,0,8"/>
+                    <Setter Property="VerticalContentAlignment" Value="Center"/>
+                </Style>
+            </ContextMenu.ItemContainerStyle>
+            <MenuItem Name="MenuEdit" Header="编辑模板" Click="MenuEdit_Click" >
+            </MenuItem>
+            <MenuItem Name="MenuDeleteCurrent" Header="删除模板"  Click="MenuDeleteCurrent_Click">
+            </MenuItem>
+            <MenuItem Name="MenuDeleteAll" Header="删除全部" Click="MenuDeleteAll_Click"></MenuItem>
+        </ContextMenu>
+    </UserControl.Resources>
+
+    <Grid Background="#F3F3F3">
+        <ListBox Name="FileWatermarkListbox" 
+                                Width="240" 
+                                BorderThickness="0"
+                                ScrollViewer.CanContentScroll="True"
+                                ScrollViewer.HorizontalScrollBarVisibility="Disabled"
+                                ScrollViewer.VerticalScrollBarVisibility="Hidden"
+                                VirtualizingPanel.IsVirtualizing="True"
+                                VirtualizingPanel.VirtualizationMode="Standard"
+                                VirtualizingPanel.CacheLengthUnit="Page"
+                                VirtualizingPanel.CacheLength="1"
+                                VirtualizingPanel.ScrollUnit="Pixel"   
+                                Background="#F3F3F3"
+                 ItemsSource="{Binding WatermarkModFileCollection}"
+                 SelectionChanged="ListBox_SelectionChanged">
+            <ListBox.ItemContainerStyle>
+                <Style TargetType="ListBoxItem">
+                    <Setter Property="Margin" Value="0"/>
+                    <Setter Property="Padding" Value="8 0 8 0"/>
+                    <!--<Setter Property="ContextMenu" Value="{StaticResource FlyoutMenu}"/>-->
+                    <Setter Property="Template" Value="{DynamicResource EditToolsItemControlTemplate}"/>
+                </Style>
+            </ListBox.ItemContainerStyle>
+            <ListBox.ItemTemplate>
+                <DataTemplate DataType="{x:Type data:WatermarkItem}">
+                    <StackPanel Name="itemPanel" >
+                        <Grid Height="160" Width=" 128" Background="Blue">
+                            <Label  Height="160" Width=" 128"></Label>
+                            <Label  Height="160" Width=" 128"></Label>
+                            <Button Name="EditTemplateBtn" Height="43" Width="63" HorizontalAlignment="Left" VerticalAlignment="Bottom"></Button>
+                            <Button Name="DeleteTemplateBtn"  Height="43" Width="63" HorizontalAlignment="Right" VerticalAlignment="Bottom" Click="DeleteTemplateBtn_Click" >
+                            </Button>
+                        </Grid>
+                    </StackPanel>
+                    <DataTemplate.Triggers>
+                        <Trigger Property="IsMouseOver" Value="True">
+                            <Setter TargetName="EditTemplateBtn" Property="Visibility" Value="Visible"/>
+                            <Setter TargetName="DeleteTemplateBtn" Property="Visibility" Value="Visible"/>
+                        </Trigger>
+                        <Trigger Property="IsMouseOver" Value="False">
+                            <Setter TargetName="EditTemplateBtn" Property="Visibility" Value="Collapsed"/>
+                            <Setter TargetName="DeleteTemplateBtn" Property="Visibility" Value="Collapsed"/>
+                        </Trigger>
+                    </DataTemplate.Triggers>
+                </DataTemplate>
+            </ListBox.ItemTemplate>
+        </ListBox>
+        <Grid Width="140" Margin="64,154,56,312" Visibility="{Binding CreateTemplateVisible, Mode=OneWay}">
+            <StackPanel Orientation="Vertical">
+                <Label Height="87" Width="87" HorizontalAlignment="Center" Background="BlueViolet"></Label>
+                <TextBlock Height="24" FontSize="14" Text="请先创建一个背景模板" Margin="0,8,0,0" VerticalAlignment="Center" ></TextBlock>
+                <Button Height="24" Width="44" Margin="0,12,0,0" Content ="新建" Command="{Binding AddTemplateCommand}"></Button>
+            </StackPanel>
+        </Grid>
+    </Grid>
 </UserControl>

+ 82 - 82
PDF Office/Views/EditTools/Watermark/WatermarkTemplateListTextContent.xaml

@@ -1,84 +1,84 @@
 <UserControl x:Class="PDF_Office.Views.EditTools.Watermark.WatermarkTemplateListTextContent"
-              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-             xmlns:prism="http://prismlibrary.com/"             
-             prism:ViewModelLocator.AutoWireViewModel="True"
-             xmlns:data ="clr-namespace:PDFSettings;assembly=PDFSettings"
-               xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
-             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:watermark="clr-namespace:PDF_Office.ViewModels.EditTools.Watermark" d:DataContext="{d:DesignInstance Type=watermark:WatermarkTemplateListTextContentViewModel}"
-             mc:Ignorable="d"
-             d:DesignHeight="632"
-             d:DesignWidth="260">
-
-    <UserControl.Resources>
-        <ContextMenu x:Key="FlyoutMenu" FontSize="14" >
-            <ContextMenu.ItemContainerStyle>
-                <Style TargetType="{x:Type MenuItem}">
-                    <Setter Property="Padding" Value="0,8,0,8"/>
-                    <Setter Property="VerticalContentAlignment" Value="Center"/>
-                </Style>
-            </ContextMenu.ItemContainerStyle>
-            <MenuItem Name="MenuEdit" Header="编辑模板" Click="MenuEdit_Click" >
-            </MenuItem>
-            <MenuItem Name="MenuDeleteCurrent" Header="删除模板"  Click="MenuDeleteCurrent_Click">
-            </MenuItem>
-            <MenuItem Name="MenuDeleteAll" Header="删除全部" Click="MenuDeleteAll_Click"></MenuItem>
-        </ContextMenu>
-    </UserControl.Resources>
-    
-    <Grid Background="#F3F3F3">
-        <ListBox Name="TextWatermarkListbox" 
-                                Width="240" 
-                                BorderThickness="0"
-                                ScrollViewer.CanContentScroll="True"
-                                ScrollViewer.HorizontalScrollBarVisibility="Disabled"
-                                ScrollViewer.VerticalScrollBarVisibility="Hidden"
-                                VirtualizingPanel.IsVirtualizing="True"
-                                VirtualizingPanel.VirtualizationMode="Standard"
-                                VirtualizingPanel.CacheLengthUnit="Page"
-                                VirtualizingPanel.CacheLength="1"
-                                VirtualizingPanel.ScrollUnit="Pixel"   
-                                Background="#F3F3F3"
-                 ItemsSource="{Binding WatermarkModTextCollection}"
-                 SelectionChanged="ListBox_SelectionChanged">
-            <ListBox.ItemContainerStyle>
-                <Style TargetType="ListBoxItem">
-                    <Setter Property="Margin" Value="0"/>
-                    <Setter Property="Padding" Value="8 0 8 0"/>
-                    <!--<Setter Property="ContextMenu" Value="{StaticResource FlyoutMenu}"/>-->
-                    <Setter Property="Template" Value="{DynamicResource EditToolsItemControlTemplate}"/>
-                </Style>
-            </ListBox.ItemContainerStyle>
-            <ListBox.ItemTemplate>
-                <DataTemplate DataType="{x:Type data:WatermarkItem}">
-                    <StackPanel Name="itemPanel" >
-                        <Grid Height="160" Width=" 128" Background="Blue">
-                            <Label  Height="160" Width=" 128"></Label>
-                            <Label  Height="160" Width=" 128"></Label>
-                            <Button Name="EditTemplateBtn" Height="43" Width="63" HorizontalAlignment="Left" VerticalAlignment="Bottom"></Button>
-                            <Button Name="DeleteTemplateBtn"  Height="43" Width="63" HorizontalAlignment="Right" VerticalAlignment="Bottom" Click="DeleteTemplateBtn_Click" >
-                            </Button>
-                        </Grid>
-                    </StackPanel>
-                    <DataTemplate.Triggers>
-                        <Trigger Property="IsMouseOver" Value="True">
-                            <Setter TargetName="EditTemplateBtn" Property="Visibility" Value="Visible"/>
-                            <Setter TargetName="DeleteTemplateBtn" Property="Visibility" Value="Visible"/>
-                        </Trigger>
-                        <Trigger Property="IsMouseOver" Value="False">
-                            <Setter TargetName="EditTemplateBtn" Property="Visibility" Value="Collapsed"/>
-                            <Setter TargetName="DeleteTemplateBtn" Property="Visibility" Value="Collapsed"/>
-                        </Trigger>
-                    </DataTemplate.Triggers>
-                </DataTemplate>
-            </ListBox.ItemTemplate>
-        </ListBox>
-        <Grid Width="140" Margin="64,154,56,312" Visibility="{Binding CreateTemplateVisible, Mode=OneWay}">
-            <StackPanel Orientation="Vertical">
-                <Label Height="87" Width="87" HorizontalAlignment="Center" Background="BlueViolet"></Label>
-                <TextBlock Height="24" FontSize="14" Text="请先创建一个背景模板" Margin="0,8,0,0" VerticalAlignment="Center" ></TextBlock>
-                <Button Height="24" Width="44" Margin="0,12,0,0" Content ="新建" Command="{Binding AddTemplateCommand}"></Button>
-            </StackPanel>
-        </Grid>
-    </Grid>
+              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+             xmlns:prism="http://prismlibrary.com/"             
+             prism:ViewModelLocator.AutoWireViewModel="True"
+             xmlns:data ="clr-namespace:PDFSettings;assembly=PDFSettings"
+               xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:watermark="clr-namespace:PDF_Office.ViewModels.EditTools.Watermark" d:DataContext="{d:DesignInstance Type=watermark:WatermarkTemplateListTextContentViewModel}"
+             mc:Ignorable="d"
+             d:DesignHeight="632"
+             d:DesignWidth="260">
+
+    <UserControl.Resources>
+        <ContextMenu x:Key="FlyoutMenu" FontSize="14" >
+            <ContextMenu.ItemContainerStyle>
+                <Style TargetType="{x:Type MenuItem}">
+                    <Setter Property="Padding" Value="0,8,0,8"/>
+                    <Setter Property="VerticalContentAlignment" Value="Center"/>
+                </Style>
+            </ContextMenu.ItemContainerStyle>
+            <MenuItem Name="MenuEdit" Header="编辑模板" Click="MenuEdit_Click" >
+            </MenuItem>
+            <MenuItem Name="MenuDeleteCurrent" Header="删除模板"  Click="MenuDeleteCurrent_Click">
+            </MenuItem>
+            <MenuItem Name="MenuDeleteAll" Header="删除全部" Click="MenuDeleteAll_Click"></MenuItem>
+        </ContextMenu>
+    </UserControl.Resources>
+
+    <Grid Background="#F3F3F3">
+        <ListBox Name="TextWatermarkListbox" 
+                                Width="240" 
+                                BorderThickness="0"
+                                ScrollViewer.CanContentScroll="True"
+                                ScrollViewer.HorizontalScrollBarVisibility="Disabled"
+                                ScrollViewer.VerticalScrollBarVisibility="Hidden"
+                                VirtualizingPanel.IsVirtualizing="True"
+                                VirtualizingPanel.VirtualizationMode="Standard"
+                                VirtualizingPanel.CacheLengthUnit="Page"
+                                VirtualizingPanel.CacheLength="1"
+                                VirtualizingPanel.ScrollUnit="Pixel"   
+                                Background="#F3F3F3"
+                 ItemsSource="{Binding WatermarkModTextCollection}"
+                 SelectionChanged="ListBox_SelectionChanged">
+            <ListBox.ItemContainerStyle>
+                <Style TargetType="ListBoxItem">
+                    <Setter Property="Margin" Value="0"/>
+                    <Setter Property="Padding" Value="8 0 8 0"/>
+                    <!--<Setter Property="ContextMenu" Value="{StaticResource FlyoutMenu}"/>-->
+                    <Setter Property="Template" Value="{DynamicResource EditToolsItemControlTemplate}"/>
+                </Style>
+            </ListBox.ItemContainerStyle>
+            <ListBox.ItemTemplate>
+                <DataTemplate DataType="{x:Type data:WatermarkItem}">
+                    <StackPanel Name="itemPanel" >
+                        <Grid Height="160" Width=" 128" Background="Blue">
+                            <Label  Height="160" Width=" 128"></Label>
+                            <Label  Height="160" Width=" 128"></Label>
+                            <Button Name="EditTemplateBtn" Height="43" Width="63" HorizontalAlignment="Left" VerticalAlignment="Bottom"></Button>
+                            <Button Name="DeleteTemplateBtn"  Height="43" Width="63" HorizontalAlignment="Right" VerticalAlignment="Bottom" Click="DeleteTemplateBtn_Click" >
+                            </Button>
+                        </Grid>
+                    </StackPanel>
+                    <DataTemplate.Triggers>
+                        <Trigger Property="IsMouseOver" Value="True">
+                            <Setter TargetName="EditTemplateBtn" Property="Visibility" Value="Visible"/>
+                            <Setter TargetName="DeleteTemplateBtn" Property="Visibility" Value="Visible"/>
+                        </Trigger>
+                        <Trigger Property="IsMouseOver" Value="False">
+                            <Setter TargetName="EditTemplateBtn" Property="Visibility" Value="Collapsed"/>
+                            <Setter TargetName="DeleteTemplateBtn" Property="Visibility" Value="Collapsed"/>
+                        </Trigger>
+                    </DataTemplate.Triggers>
+                </DataTemplate>
+            </ListBox.ItemTemplate>
+        </ListBox>
+        <Grid Width="140" Margin="64,154,56,312" Visibility="{Binding CreateTemplateVisible, Mode=OneWay}">
+            <StackPanel Orientation="Vertical">
+                <Label Height="87" Width="87" HorizontalAlignment="Center" Background="BlueViolet"></Label>
+                <TextBlock Height="24" FontSize="14" Text="请先创建一个背景模板" Margin="0,8,0,0" VerticalAlignment="Center" ></TextBlock>
+                <Button Height="24" Width="44" Margin="0,12,0,0" Content ="新建" Command="{Binding AddTemplateCommand}"></Button>
+            </StackPanel>
+        </Grid>
+    </Grid>
 </UserControl>

+ 18 - 9
PDFSettings/WatermarkTemplateList.cs

@@ -8,7 +8,7 @@ using System.Windows.Input;
 
 namespace PDFSettings
 {
-    public class WatermarkTemplateList:List<WatermarkItem>
+    public class WatermarkTemplateList : List<WatermarkItem>
     {
 
     }
@@ -35,6 +35,10 @@ namespace PDFSettings
         /// </summary>
         public float fontSize = 48;
 
+        /// <summary>
+        /// 字体大小
+        /// </summary>
+        public float imageSize = 1;
         /// <summary>
         /// 页码范围
         /// </summary>
@@ -48,10 +52,15 @@ namespace PDFSettings
         /// <summary>
         /// 水平偏移量
         /// </summary>
-        public float horizOffset = 0 ;
+        public float horizOffset = 0;
 
         public string previeImagePath = "";
 
+        /// <summary>
+        /// 图片数据缓存
+        /// </summary>
+        public byte[] imageArray = null;
+
         /// <summary>
         /// 图片数据缓存路径
         /// </summary>
@@ -70,7 +79,7 @@ namespace PDFSettings
         /// <summary>
         /// 透明度 0-255
         /// </summary>
-        public byte opacity =230;
+        public byte opacity = 230;
 
         /// <summary>
         /// 旋转角度
@@ -85,12 +94,12 @@ namespace PDFSettings
         /// <summary>
         /// 水印内容
         /// </summary>
-        public string text="Watermark";
+        public string text = "Watermark";
 
         /// <summary>
         /// 本文颜色
         /// </summary>
-        public byte[] textcolor  = new byte[] {255,0,0};
+        public byte[] textcolor = new byte[] { 255, 0, 0 };
 
         /// <summary>
         /// 垂直位置    
@@ -110,16 +119,16 @@ namespace PDFSettings
         /// <summary>
         /// 水平间距
         /// </summary>
-        public float horizontalSpacing = (float)(10*Helpers.Dpi/25.4);
-                /// <summary>
+        public float horizontalSpacing = (float)(10 * Helpers.Dpi / 25.4);
+        /// <summary>
         /// 垂直间距
         /// </summary>
-        public float verticalSpacing =(float)(20 *Helpers.Dpi / 25.4);
+        public float verticalSpacing = (float)(20 * Helpers.Dpi / 25.4);
 
         /// <summary>
         /// 水印是否在前
         /// </summary>
-        public bool isfront =true;
+        public bool isfront = true;
 
         /// <summary>
         /// 页面选择的范围 ALL ODD EVEN 1-5(传入用户输入的字符串)