Browse Source

水印-更新

liyijie 2 years ago
parent
commit
ecbd100a66

BIN
PDF Office/ComPDFKit.Desk.dll


BIN
PDF Office/ComPDFKit.Viewer.dll


BIN
PDF Office/ComPDFKit.Viewero.dll


+ 11 - 0
PDF Office/Model/RegionNames.cs

@@ -39,6 +39,17 @@ namespace PDF_Office.Model
             }
         }
 
+        /// <summary>
+        /// 阅读页PDFViewer 对应的Content RegionName
+        /// </summary>
+        public static string WatermarkViwerRegionName
+        {
+            get
+            {
+                return GetRegionName("WatermarkViwerRegionName");
+            }
+        }
+
         /// <summary>
         /// BOTA内容项 对应的Content RegionName
         /// </summary>

+ 41 - 6
PDF Office/ViewModels/EditTools/Watermark/WatermarkCreateFileContentViewModel.cs

@@ -112,7 +112,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             set
             {
                 SetProperty(ref _rotationValue, value);
-                WatermarkInfo.Rotation = (float)RotationValue;
+                WatermarkInfo.Rotation = ((float)RotationValue / 180) * 3.1415926f;
             }
         }
 
@@ -181,7 +181,27 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             }
         }
 
-        public string PageRangeText { get; set; } = "0";
+        public string _pageRangeText = "0";
+        public string PageRangeText
+        {
+            get { return _pageRangeText; }
+            set
+            {
+                _pageRangeText = value;
+                EditToolsHelper.GetPageRange(PageRangeSelectIndex, PDFViewer.Document, ref WatermarkInfo.PageRange, PageRangeText);
+            }
+        }
+
+        private bool _isFullValue = false;
+        public bool IsFullValue
+        {
+            get { return _isFullValue; }
+            set
+            {
+                SetProperty(ref _isFullValue, value);
+                WatermarkInfo.Isfull = IsFullValue;
+            }
+        }
 
         private int _pageRangeSelectIndex = 0;
         public int PageRangeSelectIndex
@@ -242,8 +262,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             ChangeLocationCommand = new DelegateCommand<object>(ChangeLocation);
             OpenFileCommand = new DelegateCommand(OpenFile);
             InitList();
-            WatermarkInfo.WatermarkHorizalign = C_Watermark_Horizalign.WATERMARK_HORIZALIGN_CENTER;
-            WatermarkInfo.WatermarkVertalign = C_Watermark_Vertalign.WATERMARK_VERTALIGN_CENTER;
+            InitWatermarkInfo();
             InitLocationButtonMatrix();
             eventAggregator.GetEvent<ConfirmEditToolsWatermarkEvent>().Subscribe(ConfirmEditToolsWatermark);
         }
@@ -252,11 +271,11 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         {
             if (Index == 0)
             {
-                WatermarkInfo.IsFront = false;
+                WatermarkInfo.IsFront = true;
             }
             if (Index == 1)
             {
-                WatermarkInfo.IsFront = true;
+                WatermarkInfo.IsFront = false;
             }
         }
 
@@ -268,6 +287,21 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             InitScaleList();
         }
 
+        private void InitWatermarkInfo()
+        {
+
+            WatermarkInfo.Rotation = ((float)RotationValue / 180) * 3.1415926f;
+            WatermarkInfo.Opacity = (byte)(((float)OpacityValue / 100) * 225);
+            WatermarkInfo.VertOffset = float.Parse(VertOffsetValue);
+            WatermarkInfo.HorizOffset = float.Parse(HorizOffsetValue);
+            WatermarkInfo.VerticalSpacing = float.Parse(VerticalSpacingValue);
+            WatermarkInfo.HorizontalSpacing = float.Parse(HorizontalSpacingValue);
+            WatermarkInfo.WatermarkHorizalign = C_Watermark_Horizalign.WATERMARK_HORIZALIGN_CENTER;
+            WatermarkInfo.WatermarkVertalign = C_Watermark_Vertalign.WATERMARK_VERTALIGN_CENTER;
+            WatermarkInfo.Isfull = IsFullValue;
+            SetIsFront(IsFrontSelectedIndex);
+        }
+
         private void InitLocationButtonMatrix()
         {
             GetLocationFromNumber.Clear();
@@ -352,6 +386,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         public void OnNavigatedTo(NavigationContext navigationContext)
         {
             navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
+            EditToolsHelper.GetPageRange(PageRangeSelectIndex, PDFViewer.Document, ref WatermarkInfo.PageRange, PageRangeText);
         }
     }
 }

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

@@ -2,6 +2,7 @@
 using ComPDFKit.PDFWatermark;
 using ComPDFKitViewer.AnnotEvent;
 using ComPDFKitViewer.PdfViewer;
+using Microsoft.Office.Interop.Word;
 using PDF_Office.EventAggregators;
 using PDF_Office.Helper;
 using PDF_Office.Model;
@@ -14,6 +15,7 @@ using Prism.Regions;
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Windows.Forms;
 using System.Windows.Media;
 
 namespace PDF_Office.ViewModels.EditTools.Watermark
@@ -155,6 +157,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _textValue, value);
                 WatermarkInfo.Text = TextValue;
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
             }
         }
 
@@ -165,7 +168,8 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             set
             {
                 SetProperty(ref _rotationValue, value);
-                WatermarkInfo.Rotation = (float)RotationValue;
+                WatermarkInfo.Rotation = ((float)RotationValue/180)*3.1415926f;
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
             }
         }
 
@@ -177,6 +181,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _opacityValue, value);
                 WatermarkInfo.Opacity = (byte)(((float)OpacityValue/100)*225);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
             }
         }
 
@@ -198,6 +203,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _vertOffsetValue, value);
                 WatermarkInfo.VertOffset = float.Parse(VertOffsetValue);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
             }
         }
 
@@ -209,6 +215,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _horizOffsetValue, value);
                 WatermarkInfo.HorizOffset = float.Parse(HorizOffsetValue);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
             }
         }
 
@@ -220,6 +227,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _verticalSpacingValue, value);
                 WatermarkInfo.VerticalSpacing = float.Parse(VerticalSpacingValue);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
             }
         }
 
@@ -231,6 +239,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _horizontalSpacingValue, value);
                 WatermarkInfo.HorizontalSpacing = float.Parse(HorizontalSpacingValue);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
             }
         }
 
@@ -242,6 +251,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _fontSizeSelectedIndex, value);
                 SetFontSize(FontSizeSelectedIndex);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
             }
         }
 
@@ -253,6 +263,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _fontNameSelectedIndex, value);
                 SetFontName(FontNameSelectedIndex);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
             }
         }
 
@@ -264,6 +275,31 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             {
                 SetProperty(ref _isFrontSelectedIndex, value);
                 SetIsFront(IsFrontSelectedIndex);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+            }
+        }
+
+        private bool _isFullValue = false;
+        public bool IsFullValue
+        {
+            get { return _isFullValue; }
+            set
+            {
+                SetProperty(ref _isFullValue, value);
+                WatermarkInfo.Isfull = IsFullValue;
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
+            }
+        }
+        private SolidColorBrush _solidColorBrush=null;
+        public SolidColorBrush SolidColorBrush {
+            get
+            {
+                return _solidColorBrush;
+            }
+            set
+            {
+                
+                SetProperty(ref _solidColorBrush, value);
             }
         }
 
@@ -276,12 +312,19 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             }
             set
             {
-                 _stringColor= value;
-                WatermarkInfo.TextColor = EditToolsHelper.ConvertColor(value); 
+                SetProperty(ref _stringColor, value);
+                WatermarkInfo.TextColor = EditToolsHelper.ConvertColor(value);
+                SolidColorBrush = new SolidColorBrush(_stringColor);
+                eventAggregator.GetEvent<SetWatermarkEvent>().Publish(WatermarkInfo);
             }
         }
-
-        public string PageRangeText { get; set; } = "0";
+        public string _pageRangeText = "0";
+        public string PageRangeText { 
+            get { return _pageRangeText; } 
+            set { _pageRangeText = value;
+                EditToolsHelper.GetPageRange(PageRangeSelectIndex, PDFViewer.Document, ref WatermarkInfo.PageRange, PageRangeText);
+            } 
+        }
 
         private int _pageRangeSelectIndex = 0;
         public int PageRangeSelectIndex
@@ -305,16 +348,18 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
 
         public DelegateCommand<object> SelectedColorChangedCommand { get; set; }
 
+        public DelegateCommand<object>  TextValueChangedCommand { get; set; }
+
         public WatermarkCreateTextContentViewModel(IEventAggregator eventAggregator)
         {
             this.eventAggregator=eventAggregator;
             WatermarkInfo.WatermarkType = C_Watermark_Type.WATERMARK_TYPE_TEXT;
-            StringColor = Color.FromArgb(0xFF, 0xFF, 0x00, 0x00);
             ChangeLocationCommand = new DelegateCommand<object>(ChangeLocation);
             SelectedColorChangedCommand = new DelegateCommand<object>(SelectedColorChanged_Click);
+            TextValueChangedCommand = new DelegateCommand<object>(TextValueChanged);
+
             InitList();
-            WatermarkInfo.WatermarkHorizalign = C_Watermark_Horizalign.WATERMARK_HORIZALIGN_CENTER;
-            WatermarkInfo.WatermarkVertalign = C_Watermark_Vertalign.WATERMARK_VERTALIGN_CENTER;
+            InitWatermarkInfo();
             InitLocationButtonMatrix();
             eventAggregator.GetEvent<ConfirmEditToolsWatermarkEvent>().Subscribe(ConfirmEditToolsWatermark);
         }
@@ -342,6 +387,7 @@ 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);
                 InitLocationButtonMatrix();
             }
         }
@@ -358,6 +404,18 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
                 }
             }
         }
+        private void TextValueChanged(object obj) {
+            if (obj != null)
+            {
+                var textValue = obj as System.Windows.Controls.TextBox;
+                if (textValue != null)
+                {
+
+                    TextValue = textValue.Text;
+                }
+            }
+
+        }
 
         private void SetFontName(int Index)
         {
@@ -404,6 +462,25 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             InitScaleList();
         }
 
+        private void InitWatermarkInfo() {
+
+            WatermarkInfo.Text = TextValue;
+            WatermarkInfo.Rotation = ((float)RotationValue / 180) * 3.1415926f; 
+            WatermarkInfo.Opacity= (byte)(((float)OpacityValue / 100) * 225);
+            WatermarkInfo.VertOffset = float.Parse(VertOffsetValue);
+            WatermarkInfo.HorizOffset = float.Parse(HorizOffsetValue);
+            WatermarkInfo.VerticalSpacing = float.Parse(VerticalSpacingValue);
+            WatermarkInfo.HorizontalSpacing = float.Parse(HorizontalSpacingValue);
+            WatermarkInfo.WatermarkHorizalign = C_Watermark_Horizalign.WATERMARK_HORIZALIGN_CENTER;
+            WatermarkInfo.WatermarkVertalign = C_Watermark_Vertalign.WATERMARK_VERTALIGN_CENTER;
+            WatermarkInfo.Isfull = IsFullValue;
+            SetFontName(FontNameSelectedIndex);
+            SetFontSize(FontSizeSelectedIndex);
+            SetIsFront(IsFrontSelectedIndex);
+            StringColor = Color.FromArgb(0xFF, 0xFF, 0x00, 0x00);
+        }
+
+
         public bool IsNavigationTarget(NavigationContext navigationContext)
         {
             return true;
@@ -416,6 +493,8 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         public void OnNavigatedTo(NavigationContext navigationContext)
         {
             navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
+            EditToolsHelper.GetPageRange(PageRangeSelectIndex, PDFViewer.Document, ref WatermarkInfo.PageRange, PageRangeText);
+
         }
     }
 }

+ 102 - 43
PDF Office/ViewModels/EditTools/Watermark/WatermarkDocumentContentViewModel.cs

@@ -20,16 +20,25 @@ using PDF_Office.Helper;
 using PDF_Office.Model.Dialog.HomePageToolsDialogs.HomePagePrinter;
 using System.Drawing;
 using System.Windows;
+using ComPDFKitViewer;
+using Size = System.Windows.Size;
 
 namespace PDF_Office.ViewModels.EditTools.Watermark
 {
-    public class WatermarkDocumentContentViewModel : BindableBase,INavigationAware
+    public class WatermarkDocumentContentViewModel : BindableBase, INavigationAware
     {
 
         public IEventAggregator eventAggregator;
+        public IRegionManager regionManager;
         public CPDFViewer PDFViewer;
-        public CPDFDocument document;
+        public CPDFDocument Document;
         private CPDFWatermark watermark;
+        private WatermarkInfo watermarkInfo;
+
+
+        public bool firstin = true;
+
+        public string ViwerRegionName { get; set; }
 
         private ImageSource _imageSource = null;
         public ImageSource ImageSource
@@ -41,56 +50,63 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
             }
         }
 
-        public WatermarkDocumentContentViewModel(IEventAggregator eventAggregator)
+        public WatermarkDocumentContentViewModel(IEventAggregator eventAggregator, IRegionManager regionManager)
         {
+            this.regionManager = regionManager;
             this.eventAggregator = eventAggregator;
             eventAggregator.GetEvent<SetWatermarkEvent>().Subscribe(SetWatermark);
+            ViwerRegionName = RegionNames.WatermarkViwerRegionName;
+
         }
 
         public void SetWatermark(WatermarkInfo watermarkInfo)
         {
-            CreateWatermark(watermarkInfo);
+            this.watermarkInfo = watermarkInfo;
 
-            document.PdfToImage("0-1", "D:\\");
-            document.WriteToFilePath("D:\\sb22222.pdf");
-            AwaitRenderBitmap(document);
+            //document.PdfToImage("0-1", "D:\\");
+            //document.WriteToFilePath("D:\\sb22222.pdf");
+            PDFViewer.InvalidateVisual();
         }
 
-        public void CreateWatermark(WatermarkInfo watermarkInfo)
+        public void CreateWatermark(CPDFDocument document)
         {
-            if (watermarkInfo.WatermarkType == C_Watermark_Type.WATERMARK_TYPE_TEXT)
+            if (watermarkInfo != null)
             {
-                watermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_TEXT);
-                watermark.SetText(watermarkInfo.Text);
-                if (watermarkInfo.TextSize == null)
+                document.DeleteWatermarks();
+                if (watermarkInfo.WatermarkType == C_Watermark_Type.WATERMARK_TYPE_TEXT)
                 {
-                    watermarkInfo.TextSize = "6";
+                    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.SetScale(float.Parse(watermarkInfo.TextSize));
+                    watermark.SetTextRGBColor(watermarkInfo.TextColor);
                 }
-                watermark.SetFontName(watermarkInfo.FontName);
-                watermark.SetScale(float.Parse(watermarkInfo.TextSize));
-                watermark.SetTextRGBColor(watermarkInfo.TextColor);
-            }
-            else
-            {
-                watermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_IMG);
-                watermark.SetImage(watermarkInfo.ImageArray, watermarkInfo.ImageWidth, watermarkInfo.ImageHeight);
-                watermark.SetScale(0.1f);
+                else
+                {
+                    watermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_IMG);
+                    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);
+                watermark.SetPages(watermarkInfo.PageRange);
+                watermark.CreateWatermark();
+                watermark.UpdateWatermark();
             }
-            watermark.SetRotation(watermarkInfo.Rotation);
-            watermark.SetOpacity(watermarkInfo.Opacity);
-            watermark.SetFront(watermarkInfo.IsFront);
-            watermark.SetVertalign(watermarkInfo.WatermarkVertalign);
-            watermark.SetHorizalign(watermarkInfo.WatermarkHorizalign);
-            watermark.SetFullScreen(true);
-            watermark.SetVertOffset(watermarkInfo.VertOffset);
-            watermark.SetHorizOffset(watermarkInfo.HorizOffset);
-            watermark.SetHorizontalSpacing(watermarkInfo.HorizontalSpacing);
-            watermark.SetVerticalSpacing(watermarkInfo.VerticalSpacing);
-            watermark.SetPages("0");
-            watermark.CreateWatermark();
-            watermark.UpdateWatermark();
-            
         }
+
         public BitmapSource ToBitmapSource(System.Drawing.Bitmap image)
         {
             IntPtr ptr = image.GetHbitmap();//obtain the Hbitmap
@@ -107,17 +123,48 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
 
         public async Task RenderBitmap(CPDFDocument doc)
         {
-            
-            CPDFPage page = doc.PageAtIndex(0,true);
+
+            CPDFPage page = doc.PageAtIndex(0, true);
             byte[] bmp_data = new byte[(int)page.PageSize.Width * (int)page.PageSize.Height * 4];
-            Bitmap bitmap = await ToolMethod.RenderPageBitmap(document, (int)(page.PageSize.Width * 1 * 1.4), (int)(page.PageSize.Height * 1 * 1.4), 0, true, true);
+            Bitmap bitmap = await ToolMethod.RenderPageBitmap(Document, (int)(page.PageSize.Width * 1 * 1.4), (int)(page.PageSize.Height * 1 * 1.4), 0, true, true);
             ImageSource = ToBitmapSource(bitmap);
             doc.ReleasePages();
 
         }
-        public async void AwaitRenderBitmap(CPDFDocument doc)
+
+        private void UndoManager_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
+        {
+        }
+
+        private void CurrentViewer_CustomDrawHandler(object sender, CustomDrawData e)
+        {
+            if (e.DrawPages.Count > 0 && e.DrawContext != null)
+            {
+                foreach (DrawPageData drawPageData in e.DrawPages)
+                {
+                    WriteableBitmap waterMarkBitmap = GetWaterMark(PDFViewer.Document, e.Zoom, drawPageData.PageIndex);
+                    e.DrawContext.DrawImage(waterMarkBitmap, drawPageData.PageBound);
+                }
+            }
+        }
+        private WriteableBitmap GetWaterMark(CPDFDocument oldDoc, double zoom, int pageIndex)
         {
-            await RenderBitmap(doc);
+            Size pageSize = oldDoc.GetPageSize(pageIndex);
+
+            CPDFDocument newDoc = CPDFDocument.CreateDocument();
+            newDoc.InsertPage(0, pageSize.Width, pageSize.Height, null);
+
+            CreateWatermark(newDoc);
+            CPDFPage newPage = newDoc.PageAtIndex(0);
+            double scale = 96.0 / 72.0;
+            zoom = zoom * scale;
+            Rect renderRect = new Rect(0, 0, (int)(pageSize.Width * scale), (int)(pageSize.Height * scale));
+            byte[] imageArray = new byte[(int)(renderRect.Width * renderRect.Height * 4)];
+
+            newPage.RenderPageBitmapWithMatrix((float)zoom, renderRect, 0x00FFFFFF, imageArray, 1, true);
+            WriteableBitmap WirteBitmap = new WriteableBitmap((int)renderRect.Width, (int)renderRect.Height, 96, 96, PixelFormats.Bgra32, null);
+            WirteBitmap.WritePixels(new Int32Rect(0, 0, (int)renderRect.Width, (int)renderRect.Height), imageArray, WirteBitmap.BackBufferStride, 0);
+            return WirteBitmap;
         }
 
         public bool IsNavigationTarget(NavigationContext navigationContext)
@@ -133,8 +180,20 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
         public void OnNavigatedTo(NavigationContext navigationContext)
         {
             navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
-            document = PDFViewer.Document;
-            AwaitRenderBitmap(PDFViewer.Document);
+            if (PDFViewer != null)
+            {
+                Document = PDFViewer.Document;
+                if (!regionManager.Regions[ViwerRegionName].Views.Contains(PDFViewer))
+                {
+                    PDFViewer.CustomDrawHandler += CurrentViewer_CustomDrawHandler;
+                    PDFViewer.UndoManager.PropertyChanged += UndoManager_PropertyChanged;
+                    regionManager.AddToRegion(ViwerRegionName, PDFViewer);
+                    PDFViewer.SetAnnotInteraction(!PDFViewer.GetAnnotInteraction());
+
+
+                }
+
+            }
         }
     }
 }

+ 1 - 1
PDF Office/Views/EditTools/Watermark/WatermarkCreateFileContent.xaml

@@ -83,7 +83,7 @@
                         </StackPanel>
 
                     </StackPanel>
-                    <CheckBox Margin="0,24,0,0" Name="IsFullCheckBox">
+                    <CheckBox Margin="0,24,0,0" Name="IsFullCheckBox" IsChecked="{Binding IsFullValue}">
                         <TextBlock Text="平铺" Width="144" Height="22" FontSize="14"/>
                     </CheckBox>
                     <StackPanel Orientation="Horizontal" Margin="0,8,0,0">

+ 9 - 2
PDF Office/Views/EditTools/Watermark/WatermarkCreateTextContent.xaml

@@ -4,6 +4,7 @@
              xmlns:prism="http://prismlibrary.com/"             
              prism:ViewModelLocator.AutoWireViewModel="True"
              xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+             xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
              xmlns:cus="clr-namespace:PDF_Office.CustomControl"
              xmlns:CompositeControl="clr-namespace:PDF_Office.CustomControl.CompositeControl"
              xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
@@ -19,7 +20,13 @@
         </Grid.RowDefinitions>
         <Grid Grid.Row="0" Width="228">
             <StackPanel Orientation="Vertical">
-                <TextBox Height="72" Margin="0,16,0,0" Text="{Binding TextValue,Mode=TwoWay}" FontSize="14"></TextBox>
+                <TextBox Name="TextValueTextBox" Height="72" Margin="0,16,0,0" Text="{Binding TextValue}" Foreground="{Binding SolidColorBrush}" FontSize="14" >
+                    <i:Interaction.Triggers>
+                        <i:EventTrigger EventName="TextChanged">
+                            <i:InvokeCommandAction Command="{Binding TextValueChangedCommand}" CommandParameter="{Binding ElementName=TextValueTextBox}" />
+                        </i:EventTrigger>
+                    </i:Interaction.Triggers>
+                </TextBox>
                 <StackPanel Orientation="Horizontal" Margin="0,8,0,0">
                     <ComboBox Width="154" Height="32" SelectedIndex="{Binding FontNameSelectedIndex}" ItemsSource="{Binding FontNameList}"></ComboBox>
                     <ComboBox Width="66" Height="32" Margin="8,0,0,0" ItemsSource="{Binding FontSizeList}" SelectedIndex="{Binding FontSizeSelectedIndex}"></ComboBox>
@@ -93,7 +100,7 @@
                     </StackPanel>
                     
                 </StackPanel>
-                <CheckBox Margin="0,24,0,0" Name="IsFullCheckBox">
+                <CheckBox Margin="0,24,0,0" Name="IsFullCheckBox" IsChecked="{Binding IsFullValue}">
                     <TextBlock Text="平铺" Width="144" Height="22" FontSize="14"/>
                 </CheckBox>
                 <StackPanel Orientation="Horizontal" Margin="0,8,0,0">

+ 1 - 0
PDF Office/Views/EditTools/Watermark/WatermarkCreateTextContent.xaml.cs

@@ -22,6 +22,7 @@ namespace PDF_Office.Views.EditTools.Watermark
             if (data != null)
             {
                 data.SelectedColorChangedCommand?.Execute(e);
+                
             }
         }
     }

+ 4 - 5
PDF Office/Views/EditTools/Watermark/WatermarkDocumentContent.xaml

@@ -9,11 +9,10 @@
              d:DesignHeight="720"
              d:DesignWidth="1020" >
     <Grid Height="720" Width="1020" Background="SkyBlue">
-        <Border  Margin="0,16,0,0" HorizontalAlignment="Center" VerticalAlignment="Top" Background="#FFFFFF"  Height="679" Width="514">
-            <Viewbox>
-                <Image Name="Image"  Source="{Binding ImageSource}"></Image>
-            </Viewbox>
-        </Border>
+        <ContentControl
+                x:Name="PDFViewerContent"
+                HorizontalAlignment="Stretch"
+                prism:RegionManager.RegionName="{Binding ViwerRegionName}" />
         <Border  Height="64" Width="293" HorizontalAlignment="Center"  VerticalAlignment="Bottom"  Panel.ZIndex="1" Margin="9" Background="#323232" CornerRadius="4">
             <Grid>
                 <StackPanel Orientation="Horizontal"  VerticalAlignment="Center">