Kaynağa Gözat

ComPDFKit.Demo(win) - 文件对比模块文案补充, 结果面板的收放

weixiangjie 10 saat önce
ebeveyn
işleme
105e954386

+ 2 - 2
Demo/Examples/Compdfkit.Controls/Common/BarControl/CPDFComparisonBarControl.xaml.cs

@@ -21,8 +21,8 @@ namespace ComPDFKit.Controls.Common
             OverlayComparison
         }
 
-        private string content = "Content Comparison"; //LanguageHelper.ToolBarManager.GetString("Button_NewSig");
-        private string overlay = "Overlay Comparison"; //LanguageHelper.ToolBarManager.GetString("Button_VerifySig");
+        private string content = LanguageHelper.ToolBarManager.GetString("Button_ContentComparison");
+        private string overlay = LanguageHelper.ToolBarManager.GetString("Button_OverlayComparison");
         private bool isFirstLoad = true;
         private int counter = 0;
         Dictionary<string, string> ButtonDict;

+ 18 - 0
Demo/Examples/Compdfkit.Controls/Common/Convert/LanguageResourceConverter.cs

@@ -149,4 +149,22 @@ namespace ComPDFKit.Controls.Common
             return null;
         }
     }
+    
+    public class CompareResourceConverter : IValueConverter
+    {
+        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            if (parameter == null || string.IsNullOrEmpty(parameter.ToString()))
+            {
+                return string.Empty;
+            }
+
+            return LanguageHelper.CompareManager.GetString(parameter.ToString());
+        }
+
+        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            return null;
+        }
+    }
 }

+ 1 - 0
Demo/Examples/Compdfkit.Controls/Common/Helper/LanguageHelper.cs

@@ -14,5 +14,6 @@ namespace ComPDFKit.Controls.Helper
         public static ResourceManager SecurityManager= new ResourceManager("ComPDFKit.Controls.Strings.Security", Assembly.GetExecutingAssembly());
         public static ResourceManager DocEditorManager= new ResourceManager("ComPDFKit.Controls.Strings.DocEditor", Assembly.GetExecutingAssembly());
         public static ResourceManager CompressManager = new ResourceManager("ComPDFKit.Controls.Strings.Compress", Assembly.GetExecutingAssembly());
+        public static ResourceManager CompareManager = new ResourceManager("ComPDFKit.Controls.Strings.Compare", Assembly.GetExecutingAssembly());
     }
 }

+ 50 - 27
Demo/Examples/Compdfkit.Controls/Comparison/CompareContentResultControl.xaml

@@ -18,6 +18,7 @@
             <common:CommonResourceConverter x:Key="CommonResourceConverter"></common:CommonResourceConverter>
             <common:BoolToVisibleConverter x:Key="BoolToVisibleConverter"></common:BoolToVisibleConverter>
             <common:TextLengthToBoolConverter x:Key="TextLengthToBoolConverter"/>
+            <common:CompareResourceConverter x:Key="ResourceConverter"></common:CompareResourceConverter>
             <local:GroupHeaderConverter x:Key="GroupHeaderConverter" />
         </ResourceDictionary>
     </UserControl.Resources>
@@ -29,12 +30,12 @@
                 <RowDefinition Height="*"></RowDefinition>
             </Grid.RowDefinitions>
             <Grid.ColumnDefinitions>
-                <ColumnDefinition Width="256"></ColumnDefinition>
+                <ColumnDefinition Width="Auto"></ColumnDefinition>
                 <ColumnDefinition Width="*"></ColumnDefinition>
             </Grid.ColumnDefinitions>
             <DockPanel Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
                 <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
-                    <ToggleButton Name="LeftToolPanelButton" Margin="13,0,0,0" BorderThickness="0" Width="30" Height="30" Style="{StaticResource ToggleButtonStyle}" Background="Transparent" IsChecked="{Binding LeftToolPanelButtonIsChecked, Mode=TwoWay}" Click="LeftToolPanelButton_Click" Visibility="{Binding NotDocsEditorVisible, Mode=OneWay}">
+                    <ToggleButton x:Name="LeftToolPanelButton" Margin="13,0,0,0" BorderThickness="0" Width="30" Height="30" Style="{StaticResource ToggleButtonStyle}" Background="Transparent" Click="LeftToolPanelButton_Click">
                         <ToggleButton.Content>
                             <Path Fill="#43474D" Width="30" Height="30">
                                 <Path.Data>
@@ -50,25 +51,31 @@
                     <WrapPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="8,0,0,0" MinWidth="220">
                         <StackPanel Orientation="Horizontal">
                             <Rectangle Fill="#FF3333" Margin="0,0,0,0" Name="DeleteColorRect" RadiusX="2" RadiusY="2" Width="16" Height="16" StrokeThickness="1" Stroke="#1A000000"></Rectangle>
-                            <TextBlock Name="DeleteColorText" Margin="8,0,0,0" VerticalAlignment="Center" MaxWidth="80" TextTrimming="CharacterEllipsis" ToolTip="{Binding ElementName=DeleteColorText,Path=Text}" Text="Deleted"></TextBlock>
+                            <TextBlock Name="DeleteColorText" Margin="8,0,0,0" VerticalAlignment="Center" MaxWidth="80" TextTrimming="CharacterEllipsis" ToolTip="{Binding ElementName=DeleteColorText,Path=Text}" 
+                                       Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_Delete}"></TextBlock>
                         </StackPanel>
                         <StackPanel Orientation="Horizontal" Margin="26,0,26,0" Background="White">
                             <Rectangle Fill="#FFBB00" Margin="0,0,0,0" Name="ReplaceColorRect" RadiusX="2" RadiusY="2" Width="16" Height="16" StrokeThickness="1" Stroke="#1A000000"></Rectangle>
-                            <TextBlock Name="ReplaceColorText" Margin="8,0,0,0" VerticalAlignment="Center" MaxWidth="80" TextTrimming="CharacterEllipsis" ToolTip="{Binding ElementName=ReplaceColorText,Path=Text}" Text="Replaced"></TextBlock>
+                            <TextBlock Name="ReplaceColorText" Margin="8,0,0,0" VerticalAlignment="Center" MaxWidth="80" TextTrimming="CharacterEllipsis" ToolTip="{Binding ElementName=ReplaceColorText,Path=Text}" 
+                                       Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_Replace}"></TextBlock>
                         </StackPanel>
                         <StackPanel Orientation="Horizontal">
                             <Rectangle Fill="#2D77FA" Margin="0,0,0,0" Name="InsertColorRect" RadiusX="2" RadiusY="2" Width="16" Height="16" StrokeThickness="1" Stroke="#1A000000"></Rectangle>
-                            <TextBlock Name="InsertColorText" Margin="8,0,0,0" VerticalAlignment="Center" MaxWidth="80" ToolTip="{Binding ElementName=InsertColorText,Path=Text}" Text="Inserted"></TextBlock>
+                            <TextBlock Name="InsertColorText" Margin="8,0,0,0" VerticalAlignment="Center" MaxWidth="80" ToolTip="{Binding ElementName=InsertColorText,Path=Text}" 
+                                       Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Content_Insert}"></TextBlock>
                         </StackPanel>
                     </WrapPanel>
                 </StackPanel>
                 <StackPanel HorizontalAlignment="Right" Orientation="Horizontal" Margin="0,5,12,5">
-                    <CheckBox Content="Scroll Sync" x:Name="SynchronizedScrollingCKBox" BorderThickness="2" BorderBrush="Black" VerticalContentAlignment="Center" FontSize="14" FontFamily="Segoe UI"></CheckBox>
-                    <Button Content="Save" Width="112" Height="32" Margin="19,0,8,0" Click="SaveBtn_Click"></Button>
-                    <Button Content="Exit" Width="112" Height="32" Click="CloseBtn_Click"></Button>
+                    <CheckBox Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Check_Sync}"
+                              x:Name="SynchronizedScrollingCKBox" BorderThickness="2" BorderBrush="Black" VerticalContentAlignment="Center" FontSize="14" FontFamily="Segoe UI"></CheckBox>
+                    <Button Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Button_Save}"
+                            Width="112" Height="32" Margin="19,0,8,0" Click="SaveBtn_Click"></Button>
+                    <Button Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Button_Exit}"
+                            Width="112" Height="32" Click="CloseBtn_Click"></Button>
                 </StackPanel>
             </DockPanel>
-            <Grid Grid.Column="0" Grid.Row="1" Grid.RowSpan="2" Width="258">
+            <Grid x:Name="ResultGrid" Grid.Column="0" Grid.Row="1" Grid.RowSpan="2" MinWidth="258" Visibility="{Binding ElementName=LeftToolPanelButton,Path=IsChecked,Converter={StaticResource BoolToVisibleConverter}}">
                 <Grid.RowDefinitions>
                     <RowDefinition Height="32"></RowDefinition>
                     <RowDefinition Height="*"></RowDefinition>
@@ -82,7 +89,8 @@
                     </ToggleButton>
                 </StackPanel>
                 <Grid Grid.Row="1" Visibility="{Binding ElementName=ThumbnailBtn,Path=IsChecked,Converter={StaticResource BoolToVisibleConverter}}">
-                    <TextBlock Text="Thumbnail" Name="ThumbnailText" FontFamily="Segoe UI" FontSize="18" Margin="12,24,0,0" FontWeight="DemiBold"></TextBlock>
+                    <TextBlock Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_Thumbnail}"
+                               Name="ThumbnailText" FontFamily="Segoe UI" FontSize="18" Margin="12,24,0,0" FontWeight="DemiBold"></TextBlock>
                     <ScrollViewer x:Name="EditListBoxSV" PreviewMouseWheel="ScrollViewer_PreviewMouseWheel" Margin="0,54,0,0">
                         <StackPanel Orientation="Horizontal">
                             <Grid Width="120">
@@ -132,9 +140,12 @@
                         <RowDefinition Height="Auto"></RowDefinition>
                         <RowDefinition Height="*"></RowDefinition>
                     </Grid.RowDefinitions>
-                    <TextBlock Grid.Row="0" Name="TotalResultTitle" Margin="12,8,0,8" Height="24" Text="Compare" FontSize="18" FontWeight="DemiBold" FontFamily="Segoe UI"></TextBlock>
+                    <TextBlock Grid.Row="0" Margin="12,8,0,8" Height="24" 
+                               Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_DifferenceList}"
+                               FontSize="18" FontWeight="DemiBold" FontFamily="Segoe UI"></TextBlock>
                     <StackPanel Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Center" Margin="8,8,0,8" Height="14">
-                        <TextBlock Text="Total revisions: " FontSize="11" Foreground="#333333" FontFamily="Segoe UI" Name="TotalChangesText"></TextBlock>
+                        <TextBlock Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_DifferenceNum}"
+                                   FontSize="11" Foreground="#333333" FontFamily="Segoe UI" Name="TotalChangesText"></TextBlock>
                         <TextBlock Name="TotalResultText" FontSize="11" Margin="4,0,0,0" FontFamily="Segoe UI" Text="0"></TextBlock>
                     </StackPanel>
                     <Grid Grid.Row="2" Visibility="Collapsed" Name="NoCompareGrid" Panel.ZIndex="2">
@@ -200,7 +211,7 @@
                     </Grid.RowDefinitions>
                     <Grid Grid.Row="0">
                         <pdfControl:CPDFScalingControl x:Name="CPDFSaclingControl" Margin="12,0,0,0" HorizontalAlignment="Left" VerticalAlignment="Center"></pdfControl:CPDFScalingControl>
-                        <TextBlock Text="oldFile.pdf" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
+                        <TextBlock x:Name="OldFileTxb" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
                     </Grid>
                     <pdfControl:PDFViewControl Grid.Row="1" x:Name="LeftViewer"/>
                 </Grid>
@@ -214,7 +225,7 @@
                     </Grid.RowDefinitions>
                     <Grid Grid.Row="0">
                         <pdfControl:CPDFScalingControl x:Name="CPDFSaclingControl1" Margin="12,0,0,0" HorizontalAlignment="Left" VerticalAlignment="Center"></pdfControl:CPDFScalingControl>
-                        <TextBlock Text="newFile.pdf" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
+                        <TextBlock x:Name="NewFileTxb" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
                     </Grid>
                     <pdfControl:PDFViewControl Grid.Row="1" x:Name="RightViewer"/>
                 </Grid>
@@ -234,7 +245,8 @@
                     </Grid.RowDefinitions>
                     <Grid>
 
-                        <TextBlock Margin="0,10,0,0" FontSize="14" FontFamily="Segoe UI" Height="20" Name="SaveText">Save</TextBlock>
+                        <TextBlock Margin="0,10,0,0" FontSize="14" FontFamily="Segoe UI" Height="20" Name="SaveText"
+                                   Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_Save}"></TextBlock>
                         <Button Click="CancelBtn_Click" HorizontalAlignment="Right" Background="White" Width="16" Height="16" BorderThickness="0">
                             <Path Fill="Black">
                                 <Path.Data>
@@ -243,27 +255,35 @@
                             </Path>
                         </Button>
                     </Grid>
-                    <GroupBox Grid.Row="1" Header="Save as" Name="SaceAsGroup">
+                    <GroupBox Grid.Row="1" Header="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Box_SaveAs}">
                         <StackPanel Margin="8,24,0,0">
                             <StackPanel Margin="0,0,0,0" Orientation="Horizontal">
-                                <RadioButton GroupName="SavePopGroup" Name="OldCheckBox" VerticalAlignment="Center" IsChecked="True" Content="Old"></RadioButton>
+                                <RadioButton GroupName="SavePopGroup" Name="OldCheckBox" VerticalAlignment="Center" IsChecked="True" 
+                                             Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Select_OldFile}"></RadioButton>
                             </StackPanel>
                             <StackPanel Margin="0,16,0,0" Orientation="Horizontal">
-                                <RadioButton GroupName="SavePopGroup" Name="NewCheckBox" VerticalAlignment="Center" Content="New"></RadioButton>
+                                <RadioButton GroupName="SavePopGroup" Name="NewCheckBox" VerticalAlignment="Center" 
+                                             Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Select_NewFile}"></RadioButton>
                             </StackPanel>
                             <StackPanel Margin="0,16,0,0" Orientation="Horizontal">
-                                <RadioButton GroupName="SavePopGroup" Name="CombineCheckBox" VerticalAlignment="Center" Content="Combine"></RadioButton>
+                                <RadioButton GroupName="SavePopGroup" Name="CombineCheckBox" VerticalAlignment="Center" 
+                                             Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Select_Merge}"></RadioButton>
                             </StackPanel>
                         </StackPanel>
                     </GroupBox>
                     <StackPanel Grid.Row="2" Orientation="Horizontal" Margin="5,16,0,0">
-                        <TextBlock x:Name="TxbFilePath" VerticalAlignment="Center" Text="File Location" MaxWidth="75" Height="20" TextTrimming="WordEllipsis" ToolTip="{Binding ElementName=TxbFilePath,Path=Text}"/>
+                        <TextBlock x:Name="TxbFilePath" VerticalAlignment="Center" 
+                                   Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_FileLocation}"
+                                   MaxWidth="75" Height="20" TextTrimming="WordEllipsis" ToolTip="{Binding ElementName=TxbFilePath,Path=Text}"/>
                         <TextBox x:Name="CmbFilePath" Width="193" Height="32" Margin="10,0" IsReadOnly="True" Padding="8,5,0,0"/>
-                        <Button Width="100" Name="BrowseFilePath" Content="Browse..." Height="32" HorizontalAlignment="Right" BorderThickness="1" Click="BrowseFilePathButton_Click"></Button>
+                        <Button Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Button_Browse}"
+                                Height="32" Width="100"  HorizontalAlignment="Right" BorderThickness="1" Click="BrowseFilePathButton_Click"></Button>
                     </StackPanel>
                     <StackPanel Orientation="Horizontal" Grid.Row="3" HorizontalAlignment="Right" Margin="0,20,2,0">
-                        <Button Width="112" Height="32" Padding="0,2,0,2" Background="#E1E1E1" BorderBrush="#FA477EDE" BorderThickness="1" Click="ConfirmSaveBtn_Click" IsEnabled="{Binding ElementName=CmbFilePath,Path=Text,Converter={StaticResource TextLengthToBoolConverter}}" x:Name="ConfirmSaveBtn">Save</Button>
-                        <Button Width="112" Height="32" Padding="0,2,0,2" Margin="10,0,0,0" Background="#E1E1E1" BorderBrush="#33000000" BorderThickness="1" Click="CancelBtn_Click" Name="BtnCancel">Cancel</Button>
+                        <Button Width="112" Height="32" Padding="0,2,0,2" Background="#E1E1E1" BorderBrush="#FA477EDE" BorderThickness="1" Click="ConfirmSaveBtn_Click" IsEnabled="{Binding ElementName=CmbFilePath,Path=Text,Converter={StaticResource TextLengthToBoolConverter}}"
+                                Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Button_Save}"></Button>
+                        <Button Width="112" Height="32" Padding="0,2,0,2" Margin="10,0,0,0" Background="#E1E1E1" BorderBrush="#33000000" BorderThickness="1" Click="CancelBtn_Click"
+                                Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Button_Cancel}"/>
 
                     </StackPanel>
                 </Grid>
@@ -280,12 +300,15 @@
                         <RowDefinition Height="*"></RowDefinition>
                         <RowDefinition Height="auto"></RowDefinition>
                     </Grid.RowDefinitions>
-                    <TextBlock FontSize="14" FontWeight="Bold" Margin="24,16,24,0" HorizontalAlignment="Left" FontFamily="Segoe UI" TextWrapping="WrapWithOverflow">Attention</TextBlock>
+                    <TextBlock FontSize="14" FontWeight="Bold" Margin="24,16,24,0" HorizontalAlignment="Left" FontFamily="Segoe UI" TextWrapping="WrapWithOverflow"
+                               Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_Attention}"></TextBlock>
                     <TextBlock Grid.Row="1" FontSize="14" Margin="24,16,24,0" HorizontalAlignment="Left" FontFamily="Segoe UI" TextWrapping="WrapWithOverflow"
-                               Text="Please confirm that you have saved the comparison results file"></TextBlock>
+                               Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Warn_Save}"></TextBlock>
                     <StackPanel Grid.Row="2" Orientation="Horizontal" Margin="24,24,24,20">
-                        <Button Width="130" Padding="0,2,0,2"  Background="#E1E1E1" BorderBrush="#33000000" BorderThickness="1" Click="CancelCloseBtn_Click" Name="BtnCancle1">Cancel</Button>
-                        <Button Width="130" Padding="0,2,0,2" Margin="10,0,0,0" Height="32" Click="ConfirmExitBtn_Click" Foreground="White" Background="#1460F3" BorderThickness="1" Name="BtnSave2">Confirm</Button>
+                        <Button Width="130" Padding="0,2,0,2"  Background="#E1E1E1" BorderBrush="#33000000" BorderThickness="1" Click="CancelCloseBtn_Click"
+                                Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Button_Cancel}"></Button>
+                        <Button Width="130" Padding="0,2,0,2" Margin="10,0,0,0" Height="32" Click="ConfirmExitBtn_Click" Foreground="White" Background="#1460F3" BorderThickness="1"
+                                Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Button_Confirm}"></Button>
                     </StackPanel>
                 </Grid>
             </Border>

+ 21 - 23
Demo/Examples/Compdfkit.Controls/Comparison/CompareContentResultControl.xaml.cs

@@ -71,11 +71,10 @@ namespace ComPDFKit.Controls.Comparison
             {
                 if (bindItem.ObjType == 1)
                 {
-                    //插入的文本
-                    Run textRun = new Run(/*App.MainPageLoader.GetString*/("FileCompare_InsertText"));
+                    Run textRun = new Run(LanguageHelper.CompareManager.GetString("Content_Insert"));
                     if (bindItem.OldPageIndex == -1 || bindItem.NewPageIndex == -1)
                     {
-                        textRun = new Run(/*App.MainPageLoader.GetString*/("SubTools_PageEdit_Insert"));
+                        textRun = new Run(LanguageHelper.CompareManager.GetString("Title_Insert"));
                     }
 
 
@@ -84,11 +83,10 @@ namespace ComPDFKit.Controls.Comparison
                 }
                 if (bindItem.ObjType == 2)
                 {
-                    //插入的图片
-                    Run textRun = new Run(/*App.MainPageLoader.GetString*/("FileCompare_InsertImage"));
+                    Run textRun = new Run(LanguageHelper.CompareManager.GetString("Insert_Image"));
                     if (bindItem.OldPageIndex == -1 || bindItem.NewPageIndex == -1)
                     {
-                        textRun = new Run(/*App.MainPageLoader.GetString*/("SubTools_PageEdit_Insert"));
+                        textRun = new Run(LanguageHelper.CompareManager.GetString("Title_Insert"));
                     }
                     textRun.Foreground = new SolidColorBrush((System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString("#42464D"));
                     addBlock.Inlines.Add(textRun);
@@ -99,23 +97,21 @@ namespace ComPDFKit.Controls.Comparison
             {
                 if (bindItem.ObjType == 1)
                 {
-                    //插入的文本
-                    Run textRun = new Run("FileCompare_DeleteText");
+                    Run textRun = new Run(LanguageHelper.CompareManager.GetString("Content_Deleted"));
                     if (bindItem.OldPageIndex == -1 || bindItem.NewPageIndex == -1)
                     {
 
-                        textRun = new Run("Main_Delete");
+                        textRun = new Run(LanguageHelper.CompareManager.GetString("Title_Delete"));
                     }
                     textRun.Foreground = new SolidColorBrush((System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString("#42464D"));
                     addBlock.Inlines.Add(textRun);
                 }
                 if (bindItem.ObjType == 2)
                 {
-                    //插入的文本
                     Run textRun = new Run("FileCompare_DeleteImage");
                     if (bindItem.OldPageIndex == -1 || bindItem.NewPageIndex == -1)
                     {
-                        textRun = new Run("Main_Delete");
+                        textRun = new Run(LanguageHelper.CompareManager.GetString("Title_Delete"));
                     }
                     textRun.Foreground = new SolidColorBrush((System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString("#42464D"));
                     addBlock.Inlines.Add(textRun);
@@ -126,14 +122,12 @@ namespace ComPDFKit.Controls.Comparison
             {
                 if (bindItem.ObjType == 1)
                 {
-                    //插入的文本
-                    Run textRun = new Run("FileCompare_ReplaceText");
+                    Run textRun = new Run(LanguageHelper.CompareManager.GetString("Content_Replaced"));
                     textRun.Foreground = new SolidColorBrush((System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString("#42464D"));
                     addBlock.Inlines.Add(textRun);
                 }
                 if (bindItem.ObjType == 2)
                 {
-                    //插入的文本
                     Run textRun = new Run("FileCompare_ReplaceImage");
                     textRun.Foreground = new SolidColorBrush((System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString("#42464D"));
                     addBlock.Inlines.Add(textRun);
@@ -315,6 +309,8 @@ namespace ComPDFKit.Controls.Comparison
             CombineDoc = combineDoc;
             OldDoc = oldDoc;
             NewDoc = newDoc;
+            OldFileTxb.Text = oldDoc.FileName + ".pdf";
+            NewFileTxb.Text = newDoc.FileName + ".pdf";
             LeftViewer.InitDocument(oldDoc);
             LeftViewer.SetToolType(ComPDFKit.Tool.ToolType.Viewer);
             CPDFSaclingControl.InitWithPDFViewer(LeftViewer);
@@ -538,7 +534,7 @@ namespace ComPDFKit.Controls.Comparison
                         if ((item.OldRect.width() > 0 && item.OldRect.height() > 0) || (item.NewRect.width() > 0 && item.NewRect.height() > 0))
                         {
                             CompareBindItem bindItem = new CompareBindItem();
-                            string page = /*App.MainPageLoader.GetString*/("Insert_Page");
+                            string page = LanguageHelper.CompareManager.GetString("Text_Page");
                             if (item.OldPageIndex == -1)
                             {
                                 bindItem.ShowPageIndex = "-" + " VS " + page + " " + (item.NewPageIndex + 1);
@@ -569,7 +565,7 @@ namespace ComPDFKit.Controls.Comparison
                         if ((item.OldRect.width() > 0 && item.OldRect.height() > 0) || (item.NewRect.width() > 0 && item.NewRect.height() > 0))
                         {
                             CompareBindItem bindItem = new CompareBindItem();
-                            string page = /*App.MainPageLoader.GetString*/("Insert_Page");
+                            string page = LanguageHelper.CompareManager.GetString("Text_Page");
                             if (item.OldPageIndex == -1)
                             {
                                 bindItem.ShowPageIndex = "-" + " VS " + page + " " + (item.NewPageIndex + 1);
@@ -947,7 +943,7 @@ namespace ComPDFKit.Controls.Comparison
             return null;
         }
 
-        //返回当前视图中的item 范围
+        // return the range of items in the current view
         private Tuple<int, int, int> GetRoughViewportRange(CPDFDocument doc, ListBox view, Size itemSize, Thickness itemMargin)
         {
             var scrollViewer = GetScrollHost(view);
@@ -1203,17 +1199,19 @@ namespace ComPDFKit.Controls.Comparison
         {
             double currentOffset = EditListBoxSV.VerticalOffset;
 
-            // 手动处理滚动
-            if (e.Delta > 0) // 向上滚动
+            // Manually handle scrolling
+            // Scroll up
+            if (e.Delta > 0) 
             {
                 EditListBoxSV.ScrollToVerticalOffset(currentOffset - 20);
             }
-            else if (e.Delta < 0) // 向下滚动
+            // Scroll down
+            else if (e.Delta < 0) 
             {
                 EditListBoxSV.ScrollToVerticalOffset(currentOffset + 20);
             }
-
-            e.Handled = true; // 标记事件已处理,防止继续冒泡
+            // Mark the event as handled, to prevent it from bubbling
+            e.Handled = true; 
         }
 
         private void LeftToolPanelButton_Click(object sender, RoutedEventArgs e)
@@ -1234,7 +1232,7 @@ namespace ComPDFKit.Controls.Comparison
         
         private void BrowseFilePathButton_Click(object sender, RoutedEventArgs e)
         {
-            CommonOpenFileDialog commonFileDialog = new CommonOpenFileDialog(/*App.MainPageLoader.GetString*/("Main_OpenFolderNoteWarning"));
+            CommonOpenFileDialog commonFileDialog = new CommonOpenFileDialog(LanguageHelper.CompressManager.GetString("Main_OpenFolderNoteWarning"));
             commonFileDialog.IsFolderPicker = true;
             if (commonFileDialog.ShowDialog() == CommonFileDialogResult.Ok)
             {

+ 21 - 8
Demo/Examples/Compdfkit.Controls/Comparison/CompareOverwriteResultControl.xaml

@@ -4,7 +4,13 @@
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
     xmlns:pdfControl="clr-namespace:ComPDFKit.Controls.PDFControl"
+    xmlns:common="clr-namespace:ComPDFKit.Controls.Common"
     mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="1200">
+    <UserControl.Resources>
+        <ResourceDictionary>
+            <common:CompareResourceConverter x:Key="ResourceConverter"></common:CompareResourceConverter>
+        </ResourceDictionary>
+    </UserControl.Resources>
     <Grid>
         <Grid Background="White">
             <Grid.RowDefinitions>
@@ -19,20 +25,24 @@
                 <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="8,0,0,0">
                     <StackPanel Orientation="Horizontal" Margin="8,1,0,1">
                         <Rectangle Fill="Red" Margin="0,0,0,0" Name="OldDocumentRect" RadiusX="2" RadiusY="2" Width="16" Height="16" StrokeThickness="1" Stroke="#1A000000"></Rectangle>
-                        <TextBlock Name="OldDocumentText" Margin="8,0,0,0" VerticalAlignment="Center" MaxWidth="80" TextTrimming="CharacterEllipsis" ToolTip="{Binding ElementName=OldDocumentText,Path=Text}" Text="Old Document"></TextBlock>
+                        <TextBlock Name="OldDocumentText" Margin="8,0,0,0" VerticalAlignment="Center" MaxWidth="80" TextTrimming="CharacterEllipsis" ToolTip="{Binding ElementName=OldDocumentText,Path=Text}" 
+                                   Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_OldFile}"></TextBlock>
                     </StackPanel>
                     <StackPanel Orientation="Horizontal" Margin="8,1,0,1" Background="White">
                         <Rectangle Fill="#2D77FA" Margin="0,0,0,0" Name="NewDocumentRect" RadiusX="2" RadiusY="2" Width="16" Height="16" StrokeThickness="1" Stroke="#1A000000"></Rectangle>
-                        <TextBlock Name="NewDocumentText" Margin="8,0,0,0" VerticalAlignment="Center" MaxWidth="80" TextTrimming="CharacterEllipsis" ToolTip="{Binding ElementName=NewDocumentText,Path=Text}" Text="New Document"></TextBlock>
+                        <TextBlock Name="NewDocumentText" Margin="8,0,0,0" VerticalAlignment="Center" MaxWidth="80" TextTrimming="CharacterEllipsis" ToolTip="{Binding ElementName=NewDocumentText,Path=Text}" 
+                                   Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_NewFile}"></TextBlock>
                     </StackPanel>
                     <pdfControl:CPDFScalingControl x:Name="ScaleControl" Margin="12,0,0,0" HorizontalAlignment="Left" VerticalAlignment="Center"></pdfControl:CPDFScalingControl>
 
                 </StackPanel>
                 <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,5,12,5" Grid.Column="1" Background="#FCFDFF">
                     <CheckBox Height="20" Margin="10,8" VerticalContentAlignment="Center" Content="Synchronized scrolling" FontSize="14" IsChecked="True" Visibility="Collapsed"/>
-                    <Button Background="#E1E1E1" BorderBrush="#B4B4B4" BorderThickness="1" Width="Auto" MinWidth="112" Height="32" FontSize="14" Click="Save_MouseLeftDown" Content="Save" Name="BtnSave">
+                    <Button Background="#E1E1E1" BorderBrush="#B4B4B4" BorderThickness="1" Width="Auto" MinWidth="112" Height="32" FontSize="14" Click="Save_MouseLeftDown" 
+                            Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Button_Save}">
                     </Button>
-                    <Button Background="#E1E1E1" BorderBrush="#B4B4B4" BorderThickness="1" Width="Auto" MinWidth="112" Height="32" FontSize="14" Margin="10,0,0,0" Click="Close_MouseLeftDown" Content="Exit" Name="BntClose"/>
+                    <Button Background="#E1E1E1" BorderBrush="#B4B4B4" BorderThickness="1" Width="Auto" MinWidth="112" Height="32" FontSize="14" Margin="10,0,0,0" Click="Close_MouseLeftDown" 
+                            Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Button_Exit}"/>
                 </StackPanel>
             </Grid>
             <Grid Grid.Row="1">
@@ -70,12 +80,15 @@
                         <RowDefinition Height="*"></RowDefinition>
                         <RowDefinition Height="auto"></RowDefinition>
                     </Grid.RowDefinitions>
-                    <TextBlock FontSize="14" FontWeight="Bold" Margin="24,16,24,0" HorizontalAlignment="Left" FontFamily="Segoe UI" TextWrapping="WrapWithOverflow">Attention</TextBlock>
+                    <TextBlock FontSize="14" FontWeight="Bold" Margin="24,16,24,0" HorizontalAlignment="Left" FontFamily="Segoe UI" TextWrapping="WrapWithOverflow"
+                               Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_Attention}"></TextBlock>
                     <TextBlock Grid.Row="1" FontSize="14" Margin="24,16,24,0" HorizontalAlignment="Left" FontFamily="Segoe UI" TextWrapping="WrapWithOverflow"
-                               Text="Please confirm that you have saved the comparison results file"></TextBlock>
+                               Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Warn_Save}"></TextBlock>
                     <StackPanel Grid.Row="2" Orientation="Horizontal" Margin="24,24,24,20">
-                        <Button Width="130" Padding="0,2,0,2"  Background="#E1E1E1" BorderBrush="#33000000" BorderThickness="1" Click="CancelCloseBtn_Click" Name="BtnCancle1">Cancel</Button>
-                        <Button Width="130" Padding="0,2,0,2" Margin="10,0,0,0" Height="32" Click="ConfirmExitBtn_Click" Foreground="White" Background="#1460F3" BorderThickness="1" Name="BtnSave2">Confirm</Button>
+                        <Button Width="130" Padding="0,2,0,2"  Background="#E1E1E1" BorderBrush="#33000000" BorderThickness="1" Click="CancelCloseBtn_Click"
+                                Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Button_Cancel}"></Button>
+                        <Button Width="130" Padding="0,2,0,2" Margin="10,0,0,0" Height="32" Click="ConfirmExitBtn_Click" Foreground="White" Background="#1460F3" BorderThickness="1"
+                                Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Button_Confirm}"></Button>
                     </StackPanel>
                 </Grid>
             </Border>

+ 1 - 1
Demo/Examples/Compdfkit.Controls/Comparison/CompareProgressControl.xaml

@@ -24,7 +24,7 @@
                             </Path.Data>
                         </Path>
                     </Button>
-                    <TextBlock Grid.Row="0" FontSize="16" FontWeight="SemiBold" Margin="32,21,31,0" VerticalAlignment="Center" HorizontalAlignment="Left" FontFamily="Segoe UI" TextWrapping="WrapWithOverflow"
+                    <TextBlock x:Name="ProgressTxb" Grid.Row="0" FontSize="16" FontWeight="SemiBold" Margin="32,21,31,0" VerticalAlignment="Center" HorizontalAlignment="Left" FontFamily="Segoe UI" TextWrapping="WrapWithOverflow"
                                Text="The Comparison Result is Coming Soon"></TextBlock>
                     <StackPanel Grid.Row="1" Orientation="Horizontal" Margin="32,12,31,15">
                         <ProgressBar x:Name="CompareProgressBar" Maximum="100" Width="261" Height="8" Foreground="#1460F3"></ProgressBar>

+ 2 - 0
Demo/Examples/Compdfkit.Controls/Comparison/CompareProgressControl.xaml.cs

@@ -1,5 +1,6 @@
 using System.Windows;
 using System.Windows.Controls;
+using ComPDFKit.Controls.Helper;
 
 namespace ComPDFKit.Controls.Comparison
 {
@@ -9,6 +10,7 @@ namespace ComPDFKit.Controls.Comparison
         public CompareProgressControl()
         {
             InitializeComponent();
+            ProgressTxb.Text = LanguageHelper.CompareManager.GetString("Tip_Progress");
         }
         
         public void SetValue(int value)

+ 88 - 51
Demo/Examples/Compdfkit.Controls/Comparison/ComparisonSettingDialog.xaml

@@ -9,6 +9,7 @@
     mc:Ignorable="d" Title="FileCompareDialogs" Width="687" Height="876" ShowInTaskbar="False" ResizeMode="NoResize" WindowStartupLocation="CenterOwner">
     <Window.Resources>
         <ResourceDictionary>
+            <common:CompareResourceConverter x:Key="ResourceConverter"></common:CompareResourceConverter>
             <Style TargetType="GroupBox">
                 <Setter Property="BorderBrush" Value="Gray" />
                 <Setter Property="Margin" Value="5,5,5,0" />
@@ -33,16 +34,22 @@
             <StackPanel Width="663" Height="876">
                 <Grid>
                     <TabControl x:Name="CompareTypeTab" SelectionChanged="CompareTypeTab_SelectionChanged" Width="633.75" Height="485">
-                        <TabItem Name="ContentCompareTab" MouseLeftButtonDown="CompareType_MouseLeftDown" Header="Content Compare" FontSize="14" FontFamily="Segoe UI">
+                        <TabItem MouseLeftButtonDown="CompareType_MouseLeftDown" 
+                                 Header="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Tab_ContentComparison}"
+                                 FontSize="14" FontFamily="Segoe UI">
 
                         </TabItem>
-                        <TabItem Name="OverlayCompareTab" MouseLeftButtonDown="CompareType_MouseLeftDown" Header="Overlay Compare" FontSize="14" FontFamily="Segoe UI">
+                        <TabItem MouseLeftButtonDown="CompareType_MouseLeftDown" 
+                                 Header="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Tab_OverlayComparison}"
+                                 FontSize="14" FontFamily="Segoe UI">
                         </TabItem>
                     </TabControl>
                     <StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center">
                         <Grid HorizontalAlignment="Right" VerticalAlignment="Center" Width="212">
                             <StackPanel>
-                                <TextBlock Name="OldFileText" HorizontalAlignment="Center" Margin="0,0,0,0" Text="Old File" Width="180" FontSize="14" FontFamily="
+                                <TextBlock HorizontalAlignment="Center" Margin="0,0,0,0" 
+                                           Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_OldFile}"
+                                           Width="180" FontSize="14" FontFamily="
                                     Segoe UI" Height="20"></TextBlock>
                                 <StackPanel HorizontalAlignment="Center" Margin="0,8,0,8" Orientation="Horizontal">
                                     <Grid Height="32" HorizontalAlignment="Center">
@@ -84,7 +91,9 @@
                         <Button Click="SwapeImage_MouseLeftDown" Name="SwapeImage" Content="VS" Foreground="White" Width="80" Height="24" Margin="30,0,30,0"></Button>
                         <Grid HorizontalAlignment="Left" VerticalAlignment="Center" Width="212">
                             <StackPanel>
-                                <TextBlock Name="NewFileText" HorizontalAlignment="Center" Margin="0,0,0,0" Text="New File" Width="180" FontSize="14" FontFamily="Segoe UI" Height="20"></TextBlock>
+                                <TextBlock HorizontalAlignment="Center" Margin="0,0,0,0" 
+                                           Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_NewFile}"
+                                           Width="180" FontSize="14" FontFamily="Segoe UI" Height="20"></TextBlock>
                                 <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,8,0,8">
                                     <Grid Height="32" HorizontalAlignment="Center">
                                         <ComboBox Name="NewFileComboBox" Width="144" Height="32" HorizontalAlignment="Left" Background="White" BorderBrush="#33000000" BorderThickness="1" Margin="0,0,4,0" SelectionChanged="NewFileComboBox_SelectionChanged" Padding="0,8,4,0">
@@ -115,8 +124,10 @@
                                                     </Rectangle>
                                                 </Border>
                                             </Grid>
-                                            <TextBlock Name="SelectFileText" Text="Select file" MaxWidth="160" TextWrapping="Wrap" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="14" Foreground="#42464D" FontFamily="Segoe UI" Margin="0,16,0,0"></TextBlock>
-                                            <TextBlock Name="ClickToAddText" Text="Click to add here" MaxWidth="160" TextWrapping="Wrap" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="12" Foreground="#666666" FontFamily="Segoe UI" Margin="0,8,0,0"></TextBlock>
+                                            <TextBlock Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_SelectFile}"
+                                                       MaxWidth="160" TextWrapping="Wrap" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="14" Foreground="#42464D" FontFamily="Segoe UI" Margin="0,16,0,0"></TextBlock>
+                                            <TextBlock Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Tooltip_AddFile}"
+                                                       MaxWidth="160" TextWrapping="Wrap" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="12" Foreground="#666666" FontFamily="Segoe UI" Margin="0,8,0,0"></TextBlock>
                                         </StackPanel>
                                     </Border>
                                     <Border Width="180" Height="280" Background="#E1E1E1" BorderThickness="1" BorderBrush="Black">
@@ -142,50 +153,61 @@
                         </Grid>
                     </StackPanel>
                 </Grid>
-                <GroupBox x:Name="PageRangeBox" Header="Page Range" Width="630" Height="116">
+                <GroupBox Header="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Box_PageRange}"
+                          Width="630" Height="116">
                     <StackPanel Margin="8,0,0,0" VerticalAlignment="Center" Orientation="Horizontal">
-                        <TextBlock Name="OldFileText1" Text="Old File" FontSize="14" FontFamily="Segoe UI" Height="20"></TextBlock>
+                        <TextBlock Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_OldFile}"
+                                   FontSize="14" FontFamily="Segoe UI" Height="20"></TextBlock>
                         <baseControl:WritableComboBox x:Name="CmbOldPageRange" Width="227" Height="32" Margin="8,0" 
                                                       HorizontalAlignment="Left" VerticalAlignment="Center" 
                                                       Background="White" IsCurrentPage="True" SelectedIndex="0" 
                                                       SelectionChanged="CmbOldPageRange_SelectionChanged" TextChanged="CmbOldPageRange_TextChanged" />
                     
-                        <TextBlock Name="NewFileText1" Text="New File" FontSize="14" FontFamily="Segoe UI" Height="20"></TextBlock>
+                        <TextBlock Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_OldFile}"
+                                   FontSize="14" FontFamily="Segoe UI" Height="20"></TextBlock>
                         <baseControl:WritableComboBox x:Name="CmbNewPageRange" Width="227" Height="32" Margin="8,0" 
                                                       HorizontalAlignment="Left" VerticalAlignment="Center" Background="White" 
                                                       IsCurrentPage="True" SelectedIndex="0" 
                                                       SelectionChanged="CmbNewPageRange_SelectionChanged" TextChanged="CmbNewPageRange_TextChanged" />
                     </StackPanel>
                 </GroupBox>
-                <GroupBox Header="Comparison Settings" x:Name="ContentSettingBox" Width="630" Height="171" Visibility="Visible">
+                <GroupBox Header="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Box_Comparison}" 
+                          x:Name="ContentSettingBox" Width="630" Height="171" Visibility="Visible">
                     <StackPanel Margin="0,20,0,0">
                         <StackPanel Margin="13,0,0,8" HorizontalAlignment="Left" Orientation="Horizontal">
-                            <TextBlock FontWeight="DemiBold" FontSize="14" FontFamily="Segoe UI" Text="Compare Items"></TextBlock>
-                            <CheckBox Name="TextCheckBox" Content="Text" IsChecked="True" Margin="20,0,12,0" VerticalContentAlignment="Center"></CheckBox>
-                            <CheckBox Name="ImageCheckBox" Content="Image" IsChecked="True" VerticalContentAlignment="Center"></CheckBox>
+                            <TextBlock FontWeight="DemiBold" FontSize="14" FontFamily="Segoe UI" 
+                                       Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Setting_Items}"></TextBlock>
+                            <CheckBox Name="TextCheckBox" Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Check_Text}"
+                                      IsChecked="True" Margin="20,0,12,0" VerticalContentAlignment="Center"></CheckBox>
+                            <CheckBox Name="ImageCheckBox" Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Check_Image}"
+                                      IsChecked="True" VerticalContentAlignment="Center"></CheckBox>
                         </StackPanel>
                         
                         <StackPanel Orientation="Horizontal" Margin="13,12,0,0">
-                            <TextBlock FontWeight="DemiBold" FontSize="14" FontFamily="Segoe UI" Text="Mark Difference"></TextBlock>
+                            <TextBlock FontWeight="DemiBold" FontSize="14" FontFamily="Segoe UI" 
+                                       Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Setting_MarkDifference}"></TextBlock>
                             <StackPanel Margin="20,0,0,0">
                                 <StackPanel Orientation="Horizontal" Background="White">
                                     <TextBlock Margin="0,0,10,0" VerticalAlignment="Center" FontFamily="Segoe UI" FontSize="14" MinWidth="90" TextTrimming="WordEllipsis"
                                                Height="20" Width="110"
-                                               ToolTip="{Binding ElementName=ReplaceColorText,Path=Text}" Name="ReplaceColorText">Deleted Content</TextBlock>
+                                               Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Content_Deleted}"
+                                               ToolTip="{Binding ElementName=ReplaceColorText,Path=Text}" Name="ReplaceColorText"></TextBlock>
                                     <Rectangle Fill="Red" Margin="12,0,0,0" Name="ReplaceColorRect" MouseLeftButtonDown="ReplaceColorRect_Click" Width="32" Height="16"
                                                StrokeThickness="1" Stroke="#1A000000"></Rectangle>
                                 </StackPanel>
                                 <StackPanel Orientation="Horizontal" Margin="0,10,0,0">
                                     <TextBlock Margin="0,0,10,0" VerticalAlignment="Center" TextTrimming="WordEllipsis" Height="20" Width="110"
+                                               Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Content_Replaced}"
                                                ToolTip="{Binding ElementName=InsertColorText,Path=Text}" FontFamily="Segoe UI" FontSize="14" MinWidth="90" 
-                                               Name="InsertColorText">Replaced Content</TextBlock>
+                                               Name="InsertColorText"></TextBlock>
                                     <Rectangle Fill="#FFBB00" Margin="12,0,0,0" Name="InsertColorRect" MouseLeftButtonDown="InsertColorRect_Click" Width="32" Height="16"
                                                StrokeThickness="1" Stroke="#1A000000"></Rectangle>
                                 </StackPanel>
                                 <StackPanel Orientation="Horizontal" Margin="0,10,0,0">
                                     <TextBlock Margin="0,0,10,0" TextTrimming="WordEllipsis" Height="20" Width="110"
+                                               Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Content_Insert}"
                                                ToolTip="{Binding ElementName=DeleteColorText,Path=Text}" VerticalAlignment="Center" FontFamily="Segoe UI" 
-                                               FontSize="14" MinWidth="90" Name="DeleteColorText">Inserted Content</TextBlock>
+                                               FontSize="14" MinWidth="90" Name="DeleteColorText"></TextBlock>
                                     <Rectangle Fill="#2D77FA" Margin="12,0,0,0" Name="DeleteColorRect" MouseLeftButtonDown="DeleteColorRect_Click" Width="32" Height="16"
                                                StrokeThickness="1" Stroke="#1A000000"></Rectangle>
                                 </StackPanel>
@@ -193,54 +215,63 @@
                         </StackPanel>
                     </StackPanel>
                 </GroupBox>
-                <GroupBox Header="Comparison Settings" x:Name="OverlaySettingBox" Width="630" Height="171" Visibility="Collapsed">
+                <GroupBox Header="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Setting_Compare}" x:Name="OverlaySettingBox" Width="630" Height="171" Visibility="Collapsed">
                     <StackPanel Margin="13,20,0,0">
                         <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
-                            <TextBlock Text="Opacity" FontWeight="DemiBold" FontSize="14" FontFamily="Segoe UI" Width="120" VerticalAlignment="Center"></TextBlock>
-                            <TextBlock Text="Old File" FontSize="14" FontFamily="Segoe UI" VerticalAlignment="Center" Margin="20,0,8,0"></TextBlock>
+                            <TextBlock Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Setting_Opacity}"
+                                       FontWeight="DemiBold" FontSize="14" FontFamily="Segoe UI" Width="120" VerticalAlignment="Center"></TextBlock>
+                            <TextBlock Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_OldFile}"
+                                       FontSize="14" FontFamily="Segoe UI" VerticalAlignment="Center" Margin="20,0,8,0"></TextBlock>
                             <common:DropDownNumberBoxControl HorizontalContentAlignment="Stretch" Width="154" Height="32" Unit="%" Minimum="1" Maxium="100" Text="50" x:Name="OldOpacityControl" TextChangedEvent="OldOpacityControl_OnTextInput"/>
                             
-                            <TextBlock Text="New File" FontSize="14" FontFamily="Segoe UI" VerticalAlignment="Center" Margin="20,0,8,0"></TextBlock>
+                            <TextBlock Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_NewFile}"
+                                       FontSize="14" FontFamily="Segoe UI" VerticalAlignment="Center" Margin="20,0,8,0"></TextBlock>
                             <common:DropDownNumberBoxControl HorizontalContentAlignment="Stretch" Width="154" Height="32" Unit="%" Minimum="1" Maxium="100" Text="50" x:Name="NewOpacityControl" TextChangedEvent="NewOpacityControl_OnTextInput"/>
                         </StackPanel>
                         
                         <StackPanel Orientation="Horizontal" Margin="0,12,0,12" Height="32">
-                            <TextBlock Text="Mark Difference" FontWeight="DemiBold" FontSize="14" FontFamily="Segoe UI" Width="120" VerticalAlignment="Center"></TextBlock>
-                            <TextBlock Text="Old File" FontSize="14" FontFamily="Segoe UI" VerticalAlignment="Center" Margin="20,0,8,0"></TextBlock>
+                            <TextBlock Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Setting_MarkDifference}"
+                                       FontWeight="DemiBold" FontSize="14" FontFamily="Segoe UI" Width="120" VerticalAlignment="Center"></TextBlock>
+                            <TextBlock Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_OldFile}"
+                                       FontSize="14" FontFamily="Segoe UI" VerticalAlignment="Center" Margin="20,0,8,0"></TextBlock>
                             <Rectangle Fill="Red" Margin="12,0,0,0" Name="OldColorRect" MouseLeftButtonDown="OldMarkColorRect_Click" Width="32" Height="16"
                                        StrokeThickness="1" Stroke="#1A000000"></Rectangle>
-                            <TextBlock Text="New File" FontSize="14" FontFamily="Segoe UI" VerticalAlignment="Center" Margin="20,0,8,0"></TextBlock>
+                            <TextBlock Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_NewFile}"
+                                       FontSize="14" FontFamily="Segoe UI" VerticalAlignment="Center" Margin="20,0,8,0"></TextBlock>
                             <Rectangle Fill="#2D77FA" Margin="12,0,0,0" Name="NewColorRect" MouseLeftButtonDown="NewMarkColorRect_Click" Width="32" Height="16"
                                        StrokeThickness="1" Stroke="#1A000000"></Rectangle>
                         </StackPanel>
                         
                         <StackPanel Orientation="Horizontal">
-                            <TextBlock Text="Blend Mode" FontWeight="DemiBold" FontSize="14" FontFamily="Segoe UI" Width="120" VerticalAlignment="Center"></TextBlock>
+                            <TextBlock Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Setting_Blend}"
+                                       FontWeight="DemiBold" FontSize="14" FontFamily="Segoe UI" Width="120" VerticalAlignment="Center"></TextBlock>
                             <ComboBox Style="{StaticResource ComboBoxStyle1}" Width="168" Height="32" Margin="20,0,8,0" SelectionChanged="Selector_OnSelectionChanged">
-                                <ComboBoxItem Content="Normal" IsSelected="True"></ComboBoxItem>
-                                <ComboBoxItem Content="Multiply"></ComboBoxItem>
-                                <ComboBoxItem Content="Screen"></ComboBoxItem>
-                                <ComboBoxItem Content="Overlay"></ComboBoxItem>
-                                <ComboBoxItem Content="Darken"></ComboBoxItem>
-                                <ComboBoxItem Content="Lighten"></ComboBoxItem>
-                                <ComboBoxItem Content="ColorDodge"></ComboBoxItem>
-                                <ComboBoxItem Content="ColorBurn"></ComboBoxItem>
-                                <ComboBoxItem Content="HardLight"></ComboBoxItem>
-                                <ComboBoxItem Content="SoftLight"></ComboBoxItem>
-                                <ComboBoxItem Content="Difference"></ComboBoxItem>
-                                <ComboBoxItem Content="Exclusion"></ComboBoxItem>
-                                <ComboBoxItem Content="Hue"></ComboBoxItem>
-                                <ComboBoxItem Content="Saturation"></ComboBoxItem>
-                                <ComboBoxItem Content="Color"></ComboBoxItem>
-                                <ComboBoxItem Content="Luminosity"></ComboBoxItem>
+                                <ComboBoxItem Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Blend_Normal}" IsSelected="True"></ComboBoxItem>
+                                <ComboBoxItem Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Blend_Multiply}"></ComboBoxItem>
+                                <ComboBoxItem Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Blend_Screen}"></ComboBoxItem>
+                                <ComboBoxItem Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Blend_Overlay}"></ComboBoxItem>
+                                <ComboBoxItem Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Blend_Darken}"></ComboBoxItem>
+                                <ComboBoxItem Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Blend_Lighten}"></ComboBoxItem>
+                                <ComboBoxItem Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Blend_ColorDodge}"></ComboBoxItem>
+                                <ComboBoxItem Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Blend_ColorBurn}"></ComboBoxItem>
+                                <ComboBoxItem Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Blend_HardLight}"></ComboBoxItem>
+                                <ComboBoxItem Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Blend_SoftLight}"></ComboBoxItem>
+                                <ComboBoxItem Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Blend_Difference}"></ComboBoxItem>
+                                <ComboBoxItem Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Blend_Exclusion}"></ComboBoxItem>
+                                <ComboBoxItem Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Blend_Hue}"></ComboBoxItem>
+                                <ComboBoxItem Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Blend_Saturation}"></ComboBoxItem>
+                                <ComboBoxItem Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Blend_Colour}"></ComboBoxItem>
+                                <ComboBoxItem Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Blend_Luminosity}"></ComboBoxItem>
                             </ComboBox>
                         </StackPanel>
                     </StackPanel>
                 </GroupBox>
             </StackPanel>
             <StackPanel HorizontalAlignment="Right" Orientation="Horizontal" Margin="18" VerticalAlignment="Bottom">
-                <Button Width="112" Height="32" FontSize="14" FontFamily="Segoe UI" Click="CancleBtn_Click" Background="#E1E1E1" BorderBrush="#33000000" BorderThickness="1" Content="Cancel" MinWidth="120" Name="BtnCancle"></Button>
-                <Button Width="112" Height="32" FontSize="14" FontFamily="Segoe UI" Click="CompareDocBtn_Click" Content="Compare" MinWidth="120" Background="#E1E1E1" BorderBrush="#FA477EDE" BorderThickness="1" Margin="10,0,18,0" Name="BtnCompare"></Button>
+                <Button Width="112" Height="32" FontSize="14" FontFamily="Segoe UI" Click="CancleBtn_Click" Background="#E1E1E1" BorderBrush="#33000000" BorderThickness="1" MinWidth="120"
+                         Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Button_Cancel}"></Button>
+                <Button Width="112" Height="32" FontSize="14" FontFamily="Segoe UI" Click="CompareDocBtn_Click" MinWidth="120" Background="#E1E1E1" BorderBrush="#FA477EDE" BorderThickness="1" Margin="10,0,18,0"
+                        Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Button_Compare}"></Button>
             </StackPanel>
         </Grid>
         <Grid x:Name="SelectFileBorder" Background="#20000000" Visibility="Collapsed">
@@ -254,13 +285,16 @@
                         <RowDefinition Height="*"></RowDefinition>
                         <RowDefinition Height="auto"></RowDefinition>
                     </Grid.RowDefinitions>
-                    <TextBlock FontSize="14" FontWeight="Bold" Margin="24,16,24,0" HorizontalAlignment="Left" FontFamily="Segoe UI" TextWrapping="WrapWithOverflow">Select File</TextBlock>
+                    <TextBlock FontSize="14" FontWeight="Bold" Margin="24,16,24,0" HorizontalAlignment="Left" FontFamily="Segoe UI" TextWrapping="WrapWithOverflow"
+                               Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_SelectFile}"></TextBlock>
                     <TextBlock Grid.Row="1" FontSize="14" Margin="24,16,24,0" HorizontalAlignment="Left" FontFamily="Segoe UI" TextWrapping="WrapWithOverflow"
-                               Text="Please select 2 files to compare"></TextBlock>
+                               Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Error_SelectFile}"></TextBlock>
                     <StackPanel Grid.Row="2" Orientation="Horizontal" Margin="24,24,24,20">
-                        <Button Width="130" Padding="0,2,0,2"  Background="#E1E1E1" BorderBrush="#33000000" BorderThickness="1" Click="SelectFileCancel_OnClick">Cancel</Button>
+                        <Button Width="130" Padding="0,2,0,2"  Background="#E1E1E1" BorderBrush="#33000000" BorderThickness="1" Click="SelectFileCancel_OnClick"
+                                Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Button_Cancel}"></Button>
                         <Button Width="130" Padding="0,2,0,2" Margin="10,0,0,0" Height="32" Foreground="White" Background="#1460F3"
-                                BorderThickness="1" Click="SelectFileCancel_OnClick">OK</Button>
+                                Content="OK"
+                                BorderThickness="1" Click="SelectFileCancel_OnClick"></Button>
                     </StackPanel>
                 </Grid>
             </Border>
@@ -276,13 +310,16 @@
                         <RowDefinition Height="*"></RowDefinition>
                         <RowDefinition Height="auto"></RowDefinition>
                     </Grid.RowDefinitions>
-                    <TextBlock FontSize="14" FontWeight="Bold" Margin="24,16,24,0" HorizontalAlignment="Left" FontFamily="Segoe UI" TextWrapping="WrapWithOverflow">Invalid Page Range</TextBlock>
+                    <TextBlock FontSize="14" FontWeight="Bold" Margin="24,16,24,0" HorizontalAlignment="Left" FontFamily="Segoe UI" TextWrapping="WrapWithOverflow"
+                               Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Title_InvalidPage}"></TextBlock>
                     <TextBlock Grid.Row="1" FontSize="14" Margin="24,16,24,0" HorizontalAlignment="Left" FontFamily="Segoe UI" TextWrapping="WrapWithOverflow"
-                               Text="The page range that you selected is invalid. Please select again."></TextBlock>
+                               Text="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Error_InvalidPage}"></TextBlock>
                     <StackPanel Grid.Row="2" Orientation="Horizontal" Margin="24,24,24,20">
-                        <Button Width="130" Padding="0,2,0,2"  Background="#E1E1E1" BorderBrush="#33000000" BorderThickness="1" Click="PageRangeCancel_OnClick">Cancel</Button>
+                        <Button Width="130" Padding="0,2,0,2"  Background="#E1E1E1" BorderBrush="#33000000" BorderThickness="1" Click="PageRangeCancel_OnClick"
+                                Content="{Binding Converter={StaticResource ResourceConverter}, ConverterParameter=Button_Cancel}"></Button>
                         <Button Width="130" Padding="0,2,0,2" Margin="10,0,0,0" Height="32" Foreground="White" Background="#1460F3"
-                                BorderThickness="1" Click="PageRangeCancel_OnClick">OK</Button>
+                                Content="OK"
+                                BorderThickness="1" Click="PageRangeCancel_OnClick"></Button>
                     </StackPanel>
                 </Grid>
             </Border>

+ 1 - 0
Demo/Examples/Compdfkit.Controls/Comparison/ComparisonSettingDialog.xaml.cs

@@ -95,6 +95,7 @@ namespace ComPDFKit.Controls.Comparison
             InitializeComponent();
             this.viewCtrl = viewCtrl;
             SwapeImage.IsEnabled = false;
+            Title = LanguageHelper.CompareManager.GetString("Title_CompareDoc");
         }
         
         public string ConvertBrushToHex(Color color)

+ 12 - 0
Demo/Examples/Compdfkit.Controls/Compdfkit.Controls.csproj

@@ -612,6 +612,11 @@
     <Compile Include="Snapshot\SnapshotMenu.xaml.cs">
       <DependentUpon>SnapshotMenu.xaml</DependentUpon>
     </Compile>
+    <Compile Include="Strings\Compare.Designer.cs">
+      <DesignTime>True</DesignTime>
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Compare.resx</DependentUpon>
+    </Compile>
     <Compile Include="Strings\Compress.Designer.cs">
       <AutoGen>True</AutoGen>
       <DesignTime>True</DesignTime>
@@ -701,6 +706,13 @@
     <EmbeddedResource Include="Strings\Common.zh.resx">
       <DependentUpon>Common.resx</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="Strings\Compare.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Compare.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Strings\Compare.zh.resx">
+      <DependentUpon>Compare.resx</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="Strings\Compress.resx">
       <Generator>ResXFileCodeGenerator</Generator>
       <LastGenOutput>Compress.Designer.cs</LastGenOutput>

+ 692 - 0
Demo/Examples/Compdfkit.Controls/Strings/Compare.Designer.cs

@@ -0,0 +1,692 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace ComPDFKit.Controls.Strings {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Compare {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Compare() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ComPDFKit.Controls.Strings.Compare", typeof(Compare).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Cancel.
+        /// </summary>
+        internal static string _ {
+            get {
+                return ResourceManager.GetString("", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to ColorBurn.
+        /// </summary>
+        internal static string Blend_ColorBurn {
+            get {
+                return ResourceManager.GetString("Blend_ColorBurn", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to ColorDodge.
+        /// </summary>
+        internal static string Blend_ColorDodge {
+            get {
+                return ResourceManager.GetString("Blend_ColorDodge", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Colour.
+        /// </summary>
+        internal static string Blend_Colour {
+            get {
+                return ResourceManager.GetString("Blend_Colour", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Darken.
+        /// </summary>
+        internal static string Blend_Darken {
+            get {
+                return ResourceManager.GetString("Blend_Darken", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Difference.
+        /// </summary>
+        internal static string Blend_Difference {
+            get {
+                return ResourceManager.GetString("Blend_Difference", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Exclusion.
+        /// </summary>
+        internal static string Blend_Exclusion {
+            get {
+                return ResourceManager.GetString("Blend_Exclusion", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to HardLight.
+        /// </summary>
+        internal static string Blend_HardLight {
+            get {
+                return ResourceManager.GetString("Blend_HardLight", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Hue.
+        /// </summary>
+        internal static string Blend_Hue {
+            get {
+                return ResourceManager.GetString("Blend_Hue", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Lighten.
+        /// </summary>
+        internal static string Blend_Lighten {
+            get {
+                return ResourceManager.GetString("Blend_Lighten", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Luminosity.
+        /// </summary>
+        internal static string Blend_Luminosity {
+            get {
+                return ResourceManager.GetString("Blend_Luminosity", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Multiply.
+        /// </summary>
+        internal static string Blend_Multiply {
+            get {
+                return ResourceManager.GetString("Blend_Multiply", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Normal.
+        /// </summary>
+        internal static string Blend_Normal {
+            get {
+                return ResourceManager.GetString("Blend_Normal", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Overlay.
+        /// </summary>
+        internal static string Blend_Overlay {
+            get {
+                return ResourceManager.GetString("Blend_Overlay", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Saturation.
+        /// </summary>
+        internal static string Blend_Saturation {
+            get {
+                return ResourceManager.GetString("Blend_Saturation", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Screen.
+        /// </summary>
+        internal static string Blend_Screen {
+            get {
+                return ResourceManager.GetString("Blend_Screen", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to SoftLight.
+        /// </summary>
+        internal static string Blend_SoftLight {
+            get {
+                return ResourceManager.GetString("Blend_SoftLight", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Comparison Settings.
+        /// </summary>
+        internal static string Box_Comparison {
+            get {
+                return ResourceManager.GetString("Box_Comparison", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Page Range.
+        /// </summary>
+        internal static string Box_PageRange {
+            get {
+                return ResourceManager.GetString("Box_PageRange", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Save as.
+        /// </summary>
+        internal static string Box_SaveAs {
+            get {
+                return ResourceManager.GetString("Box_SaveAs", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Browse.
+        /// </summary>
+        internal static string Button_Browse {
+            get {
+                return ResourceManager.GetString("Button_Browse", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Cancel.
+        /// </summary>
+        internal static string Button_Cancel {
+            get {
+                return ResourceManager.GetString("Button_Cancel", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Compare.
+        /// </summary>
+        internal static string Button_Compare {
+            get {
+                return ResourceManager.GetString("Button_Compare", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Comfirm.
+        /// </summary>
+        internal static string Button_Confirm {
+            get {
+                return ResourceManager.GetString("Button_Confirm", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Exit.
+        /// </summary>
+        internal static string Button_Exit {
+            get {
+                return ResourceManager.GetString("Button_Exit", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Save.
+        /// </summary>
+        internal static string Button_Save {
+            get {
+                return ResourceManager.GetString("Button_Save", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Images.
+        /// </summary>
+        internal static string Check_Image {
+            get {
+                return ResourceManager.GetString("Check_Image", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Scroll Sync.
+        /// </summary>
+        internal static string Check_Sync {
+            get {
+                return ResourceManager.GetString("Check_Sync", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Text.
+        /// </summary>
+        internal static string Check_Text {
+            get {
+                return ResourceManager.GetString("Check_Text", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Select File.
+        /// </summary>
+        internal static string Cmb_AddFile {
+            get {
+                return ResourceManager.GetString("Cmb_AddFile", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Deleted Content.
+        /// </summary>
+        internal static string Content_Deleted {
+            get {
+                return ResourceManager.GetString("Content_Deleted", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Inserted Content.
+        /// </summary>
+        internal static string Content_Insert {
+            get {
+                return ResourceManager.GetString("Content_Insert", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Replaced Content.
+        /// </summary>
+        internal static string Content_Replaced {
+            get {
+                return ResourceManager.GetString("Content_Replaced", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Deleted Image.
+        /// </summary>
+        internal static string Delete_Image {
+            get {
+                return ResourceManager.GetString("Delete_Image", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Deleted Page.
+        /// </summary>
+        internal static string Delete_Page {
+            get {
+                return ResourceManager.GetString("Delete_Page", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Deleted Text.
+        /// </summary>
+        internal static string Delete_Text {
+            get {
+                return ResourceManager.GetString("Delete_Text", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The page range that you selected is invalid. Please select again..
+        /// </summary>
+        internal static string Error_InvalidPage {
+            get {
+                return ResourceManager.GetString("Error_InvalidPage", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Please select 2 files to compare.
+        /// </summary>
+        internal static string Error_SelectFile {
+            get {
+                return ResourceManager.GetString("Error_SelectFile", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Inserted Image.
+        /// </summary>
+        internal static string Insert_Image {
+            get {
+                return ResourceManager.GetString("Insert_Image", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Inserted Page.
+        /// </summary>
+        internal static string Insert_Page {
+            get {
+                return ResourceManager.GetString("Insert_Page", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Inserted Text.
+        /// </summary>
+        internal static string Insert_Text {
+            get {
+                return ResourceManager.GetString("Insert_Text", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Merge into a New File.
+        /// </summary>
+        internal static string Select_Merge {
+            get {
+                return ResourceManager.GetString("Select_Merge", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to New File .
+        /// </summary>
+        internal static string Select_NewFile {
+            get {
+                return ResourceManager.GetString("Select_NewFile", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Old File.
+        /// </summary>
+        internal static string Select_OldFile {
+            get {
+                return ResourceManager.GetString("Select_OldFile", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Blend Mode.
+        /// </summary>
+        internal static string Setting_Blend {
+            get {
+                return ResourceManager.GetString("Setting_Blend", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Compare Items.
+        /// </summary>
+        internal static string Setting_Items {
+            get {
+                return ResourceManager.GetString("Setting_Items", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Mark Differences.
+        /// </summary>
+        internal static string Setting_MarkDifference {
+            get {
+                return ResourceManager.GetString("Setting_MarkDifference", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Opacity.
+        /// </summary>
+        internal static string Setting_Opacity {
+            get {
+                return ResourceManager.GetString("Setting_Opacity", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Content Comparison.
+        /// </summary>
+        internal static string Tab_ContentComparison {
+            get {
+                return ResourceManager.GetString("Tab_ContentComparison", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Overlay Comparison.
+        /// </summary>
+        internal static string Tab_OverlayComparison {
+            get {
+                return ResourceManager.GetString("Tab_OverlayComparison", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Page.
+        /// </summary>
+        internal static string Text_Page {
+            get {
+                return ResourceManager.GetString("Text_Page", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The Comparison Result Are Coming Soon.
+        /// </summary>
+        internal static string Tip_Progress {
+            get {
+                return ResourceManager.GetString("Tip_Progress", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Attention.
+        /// </summary>
+        internal static string Title_Attention {
+            get {
+                return ResourceManager.GetString("Title_Attention", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Compare Documents.
+        /// </summary>
+        internal static string Title_CompareDoc {
+            get {
+                return ResourceManager.GetString("Title_CompareDoc", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Deleted.
+        /// </summary>
+        internal static string Title_Delete {
+            get {
+                return ResourceManager.GetString("Title_Delete", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Differences List.
+        /// </summary>
+        internal static string Title_DifferenceList {
+            get {
+                return ResourceManager.GetString("Title_DifferenceList", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Total Differences.
+        /// </summary>
+        internal static string Title_DifferenceNum {
+            get {
+                return ResourceManager.GetString("Title_DifferenceNum", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to File Location.
+        /// </summary>
+        internal static string Title_FileLocation {
+            get {
+                return ResourceManager.GetString("Title_FileLocation", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Inserted.
+        /// </summary>
+        internal static string Title_Insert {
+            get {
+                return ResourceManager.GetString("Title_Insert", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Invalid Page Range.
+        /// </summary>
+        internal static string Title_InvalidPage {
+            get {
+                return ResourceManager.GetString("Title_InvalidPage", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to New File.
+        /// </summary>
+        internal static string Title_NewFile {
+            get {
+                return ResourceManager.GetString("Title_NewFile", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Old File.
+        /// </summary>
+        internal static string Title_OldFile {
+            get {
+                return ResourceManager.GetString("Title_OldFile", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Replaced.
+        /// </summary>
+        internal static string Title_Replace {
+            get {
+                return ResourceManager.GetString("Title_Replace", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Save .
+        /// </summary>
+        internal static string Title_Save {
+            get {
+                return ResourceManager.GetString("Title_Save", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Select File.
+        /// </summary>
+        internal static string Title_SelectFile {
+            get {
+                return ResourceManager.GetString("Title_SelectFile", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Thumbnail.
+        /// </summary>
+        internal static string Title_Thumbnail {
+            get {
+                return ResourceManager.GetString("Title_Thumbnail", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Click to Add.
+        /// </summary>
+        internal static string Tooltip_AddFile {
+            get {
+                return ResourceManager.GetString("Tooltip_AddFile", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Hide Differences List.
+        /// </summary>
+        internal static string Tooltip_CloseList {
+            get {
+                return ResourceManager.GetString("Tooltip_CloseList", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Open Differences List.
+        /// </summary>
+        internal static string Tooltip_OpenList {
+            get {
+                return ResourceManager.GetString("Tooltip_OpenList", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Please confirm that you have saved the comparison results file!.
+        /// </summary>
+        internal static string Warn_Save {
+            get {
+                return ResourceManager.GetString("Warn_Save", resourceCulture);
+            }
+        }
+    }
+}

+ 459 - 0
Demo/Examples/Compdfkit.Controls/Strings/Compare.resx

@@ -0,0 +1,459 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<root>
+    <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+        <xsd:element name="root" msdata:IsDataSet="true">
+            
+        </xsd:element>
+    </xsd:schema>
+    <resheader name="resmimetype">
+        <value>text/microsoft-resx</value>
+    </resheader>
+    <resheader name="version">
+        <value>1.3</value>
+    </resheader>
+    <resheader name="reader">
+        <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+    </resheader>
+    <resheader name="writer">
+        <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+    </resheader>
+    <data name="Title_CompareDoc" xml:space="preserve">
+        <value>Compare Documents</value>
+    </data>
+    <data name="Tab_ContentComparison" xml:space="preserve">
+        <value>Content Comparison</value>
+    </data>
+    <data name="Tab_OverlayComparison" xml:space="preserve">
+        <value>Overlay Comparison</value>
+    </data>
+    <data name="Title_OldFile" xml:space="preserve">
+        <value>Old File</value>
+    </data>
+    <data name="Title_NewFile" xml:space="preserve">
+        <value>New File</value>
+    </data>
+    <data name="Cmb_AddFile" xml:space="preserve">
+        <value>Select File</value>
+    </data>
+    <data name="Tooltip_AddFile" xml:space="preserve">
+        <value>Click to Add</value>
+    </data>
+    <data name="Box_PageRange" xml:space="preserve">
+        <value>Page Range</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Cancel</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>All Pages</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Odd Pages Only</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Even Page Only</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Custom Range</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>e.g. 1,3-5,10</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>New File</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>All Pages</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Odd Pages Only</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Even Page Only</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Custom Range</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>e.g. 1,3-5,10</value>
+    </data>
+    <data name="Box_Comparison" xml:space="preserve">
+        <value>Comparison Settings</value>
+    </data>
+    <data name="Setting_Items" xml:space="preserve">
+        <value>Compare Items</value>
+    </data>
+    <data name="Check_Text" xml:space="preserve">
+        <value>Text</value>
+    </data>
+    <data name="Check_Image" xml:space="preserve">
+        <value>Images</value>
+    </data>
+    <data name="Setting_MarkDifference" xml:space="preserve">
+        <value>Mark Differences</value>
+    </data>
+    <data name="Content_Deleted" xml:space="preserve">
+        <value>Deleted Content</value>
+    </data>
+    <data name="Content_Replaced" xml:space="preserve">
+        <value>Replaced Content</value>
+    </data>
+    <data name="Content_Insert" xml:space="preserve">
+        <value>Inserted Content</value>
+    </data>
+    <data name="Button_Compare" xml:space="preserve">
+        <value>Compare</value>
+    </data>
+    <data name="Button_Cancel" xml:space="preserve">
+        <value>Cancel</value>
+    </data>
+    <data name="Title_SelectFile" xml:space="preserve">
+        <value>Select File</value>
+    </data>
+    <data name="Error_SelectFile" xml:space="preserve">
+        <value>Please select 2 files to compare</value>
+    </data>
+    <data name="Title_InvalidPage" xml:space="preserve">
+        <value>Invalid Page Range</value>
+    </data>
+    <data name="Error_InvalidPage" xml:space="preserve">
+        <value>The page range that you selected is invalid. Please select again.</value>
+    </data>
+    <data name="Tip_Progress" xml:space="preserve">
+        <value>The Comparison Result Are Coming Soon</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>File</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Help</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Print</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Old File .pdf</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>New File .pdf</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Compare Documents</value>
+    </data>
+    <data name="Tooltip_CloseList" xml:space="preserve">
+        <value>Hide Differences List</value>
+    </data>
+    <data name="Tooltip_OpenList" xml:space="preserve">
+        <value>Open Differences List</value>
+    </data>
+    <data name="Title_DifferenceList" xml:space="preserve">
+        <value>Differences List</value>
+    </data>
+    <data name="Title_DifferenceNum" xml:space="preserve">
+        <value>Total Differences</value>
+    </data>
+    <data name="Title_Thumbnail" xml:space="preserve">
+        <value>Thumbnail</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Page 1 VS Page 1</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Deleted Content </value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Replaced Content</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Inserted Content</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Deleted</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Replaced</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Inserted</value>
+    </data>
+    <data name="Check_Sync" xml:space="preserve">
+        <value>Scroll Sync</value>
+    </data>
+    <data name="Button_Save" xml:space="preserve">
+        <value>Save</value>
+    </data>
+    <data name="Button_Exit" xml:space="preserve">
+        <value>Exit</value>
+    </data>
+    <data name="Title_Save" xml:space="preserve">
+        <value>Save </value>
+    </data>
+    <data name="Box_SaveAs" xml:space="preserve">
+        <value>Save as</value>
+    </data>
+    <data name="Select_OldFile" xml:space="preserve">
+        <value>Old File</value>
+    </data>
+    <data name="Select_NewFile" xml:space="preserve">
+        <value>New File </value>
+    </data>
+    <data name="Select_Merge" xml:space="preserve">
+        <value>Merge into a New File</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>MergeCompareFile.pdf</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>保存旧文件/新文件时,文件名会默认为:原文件名称_compare.pdf</value>
+    </data>
+    <data name="Title_FileLocation" xml:space="preserve">
+        <value>File Location</value>
+    </data>
+    <data name="Button_Browse" xml:space="preserve">
+        <value>Browse</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Save</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Cancel</value>
+    </data>
+    <data name="Title_Attention" xml:space="preserve">
+        <value>Attention</value>
+    </data>
+    <data name="Warn_Save" xml:space="preserve">
+        <value>Please confirm that you have saved the comparison results file!</value>
+    </data>
+    <data name="Button_Confirm" xml:space="preserve">
+        <value>Comfirm</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Cancel</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Compare Documents</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Content Comparison</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Overlay Comparison</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Old File</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>New File</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Select File</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Click to Add</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Page Range</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Old File</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>All Pages</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Odd Pages Only</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Even Page Only</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Custom Range</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>e.g. 1,3-5,10</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>New File</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>All Pages</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Odd Pages Only</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Even Page Only</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Custom Range</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>e.g. 1,3-5,10</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Comparison Settings</value>
+    </data>
+    <data name="Setting_Opacity" xml:space="preserve">
+        <value>Opacity</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Old File</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>New File</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Mark Differences</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Old File</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>New File</value>
+    </data>
+    <data name="Setting_Blend" xml:space="preserve">
+        <value>Blend Mode</value>
+    </data>
+    <data name="Blend_Normal" xml:space="preserve">
+        <value>Normal</value>
+    </data>
+    <data name="Blend_Multiply" xml:space="preserve">
+        <value>Multiply</value>
+    </data>
+    <data name="Blend_Screen" xml:space="preserve">
+        <value>Screen</value>
+    </data>
+    <data name="Blend_Overlay" xml:space="preserve">
+        <value>Overlay</value>
+    </data>
+    <data name="Blend_Darken" xml:space="preserve">
+        <value>Darken</value>
+    </data>
+    <data name="Blend_Lighten" xml:space="preserve">
+        <value>Lighten</value>
+    </data>
+    <data name="Blend_ColorDodge" xml:space="preserve">
+        <value>ColorDodge</value>
+    </data>
+    <data name="Blend_ColorBurn" xml:space="preserve">
+        <value>ColorBurn</value>
+    </data>
+    <data name="Blend_HardLight" xml:space="preserve">
+        <value>HardLight</value>
+    </data>
+    <data name="Blend_SoftLight" xml:space="preserve">
+        <value>SoftLight</value>
+    </data>
+    <data name="Blend_Difference" xml:space="preserve">
+        <value>Difference</value>
+    </data>
+    <data name="Blend_Exclusion" xml:space="preserve">
+        <value>Exclusion</value>
+    </data>
+    <data name="Blend_Hue" xml:space="preserve">
+        <value>Hue</value>
+    </data>
+    <data name="Blend_Saturation" xml:space="preserve">
+        <value>Saturation</value>
+    </data>
+    <data name="Blend_Colour" xml:space="preserve">
+        <value>Colour</value>
+    </data>
+    <data name="Blend_Luminosity" xml:space="preserve">
+        <value>Luminosity</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Compare</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Cancel</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Select File</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Please select 2 files to compare</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Invalid Page Range</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>The page range that you selected is invalid. Please select again.</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>The Comparison Result Are Coming Soon</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>File</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Help</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Print</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Old File .pdf</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>New File .pdf</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Compare Documents</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Old File</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>New File</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Save</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Exit</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Attention</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Please confirm that you have saved the comparison results file!</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Comfirm</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>Cancel</value>
+    </data>
+    <data name="Title_Delete" xml:space="preserve">
+        <value>Deleted</value>
+    </data>
+    <data name="Title_Replace" xml:space="preserve">
+        <value>Replaced</value>
+    </data>
+    <data name="Title_Insert" xml:space="preserve">
+        <value>Inserted</value>
+    </data>
+    <data name="Text_Page" xml:space="preserve">
+        <value>Page</value>
+    </data>
+    <data name="Delete_Page" xml:space="preserve">
+        <value>Deleted Page</value>
+    </data>
+    <data name="Delete_Text" xml:space="preserve">
+        <value>Deleted Text</value>
+    </data>
+    <data name="Delete_Image" xml:space="preserve">
+        <value>Deleted Image</value>
+    </data>
+    <data name="Insert_Page" xml:space="preserve">
+        <value>Inserted Page</value>
+    </data>
+    <data name="Insert_Text" xml:space="preserve">
+        <value>Inserted Text</value>
+    </data>
+    <data name="Insert_Image" xml:space="preserve">
+        <value>Inserted Image</value>
+    </data>
+</root>

+ 449 - 0
Demo/Examples/Compdfkit.Controls/Strings/Compare.zh.resx

@@ -0,0 +1,449 @@
+<root>
+    <resheader name="resmimetype">
+        <value>text/microsoft-resx</value>
+    </resheader>
+    <resheader name="version">
+        <value>1.3</value>
+    </resheader>
+    <resheader name="reader">
+        <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+    </resheader>
+    <resheader name="writer">
+        <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+    </resheader>
+    <data name="Title_CompareDoc" xml:space="preserve">
+        <value>文档对比</value>
+    </data>
+    <data name="Tab_ContentComparison" xml:space="preserve">
+        <value>内容对比</value>
+    </data>
+    <data name="Tab_OverlayComparison" xml:space="preserve">
+        <value>叠加比较</value>
+    </data>
+    <data name="Title_OldFile" xml:space="preserve">
+        <value>旧文件</value>
+    </data>
+    <data name="Title_NewFile" xml:space="preserve">
+        <value>新文件</value>
+    </data>
+    <data name="Cmb_AddFile" xml:space="preserve">
+        <value>选择文件</value>
+    </data>
+    <data name="Tooltip_AddFile" xml:space="preserve">
+        <value>点击添加文件</value>
+    </data>
+    <data name="Box_PageRange" xml:space="preserve">
+        <value>页面范围</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>取消</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>全部页面</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>奇数页</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>偶数页</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>自定义范围</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>例如 1,3-5,10</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>新文件</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>全部页面</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>奇数页</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>偶数页</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>自定义范围</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>例如 1,3-5,10</value>
+    </data>
+    <data name="Box_Comparison" xml:space="preserve">
+        <value>对比设置</value>
+    </data>
+    <data name="Setting_Items" xml:space="preserve">
+        <value>对比内容</value>
+    </data>
+    <data name="Check_Text" xml:space="preserve">
+        <value>文本</value>
+    </data>
+    <data name="Check_Image" xml:space="preserve">
+        <value>图片</value>
+    </data>
+    <data name="Setting_MarkDifference" xml:space="preserve">
+        <value>提示颜色</value>
+    </data>
+    <data name="Content_Deleted" xml:space="preserve">
+        <value>已删除的内容</value>
+    </data>
+    <data name="Content_Replaced" xml:space="preserve">
+        <value>替换的内容</value>
+    </data>
+    <data name="Content_Insert" xml:space="preserve">
+        <value>插入的内容</value>
+    </data>
+    <data name="Button_Compare" xml:space="preserve">
+        <value>对比</value>
+    </data>
+    <data name="Button_Cancel" xml:space="preserve">
+        <value>取消</value>
+    </data>
+    <data name="Title_SelectFile" xml:space="preserve">
+        <value>选择文件</value>
+    </data>
+    <data name="Error_SelectFile" xml:space="preserve">
+        <value>请选择两个文件进行对比</value>
+    </data>
+    <data name="Title_InvalidPage" xml:space="preserve">
+        <value>无效页码范围</value>
+    </data>
+    <data name="Error_InvalidPage" xml:space="preserve">
+        <value>您选择的页面范围无效,请重新选择。</value>
+    </data>
+    <data name="Tip_Progress" xml:space="preserve">
+        <value>比对结果即将揭晓</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>文件</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>帮助</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>打印</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>旧文件 .pdf</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>新文件 .pdf</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>文档对比</value>
+    </data>
+    <data name="Tooltip_CloseList" xml:space="preserve">
+        <value>收起差异列表</value>
+    </data>
+    <data name="Tooltip_OpenList" xml:space="preserve">
+        <value>打开差异列表</value>
+    </data>
+    <data name="Title_DifferenceList" xml:space="preserve">
+        <value>差异列表</value>
+    </data>
+    <data name="Title_DifferenceNum" xml:space="preserve">
+        <value>差异数量</value>
+    </data>
+    <data name="Title_Thumbnail" xml:space="preserve">
+        <value>缩略图</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>第一页 VS 第一页</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>已删除的内容</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>替换的内容</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>插入的内容</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>删除</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>替换</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>插入</value>
+    </data>
+    <data name="Check_Sync" xml:space="preserve">
+        <value>同步滚动</value>
+    </data>
+    <data name="Button_Save" xml:space="preserve">
+        <value>保存</value>
+    </data>
+    <data name="Button_Exit" xml:space="preserve">
+        <value>退出</value>
+    </data>
+    <data name="Title_Save" xml:space="preserve">
+        <value>保存</value>
+    </data>
+    <data name="Box_SaveAs" xml:space="preserve">
+        <value>保存选项</value>
+    </data>
+    <data name="Select_OldFile" xml:space="preserve">
+        <value>保存旧文件</value>
+    </data>
+    <data name="Select_NewFile" xml:space="preserve">
+        <value>保存新文件</value>
+    </data>
+    <data name="Select_Merge" xml:space="preserve">
+        <value>合并为一个新文件</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>MergeCompareFile.pdf</value>
+    </data>
+    <data name="Title_FileLocation" xml:space="preserve">
+        <value>文件位置</value>
+    </data>
+    <data name="Button_Browse" xml:space="preserve">
+        <value>浏览</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>保存</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>取消</value>
+    </data>
+    <data name="Title_Attention" xml:space="preserve">
+        <value>注意</value>
+    </data>
+    <data name="Warn_Save" xml:space="preserve">
+        <value>请确认您已经保存对比结果文件</value>
+    </data>
+    <data name="Button_Confirm" xml:space="preserve">
+        <value>确认</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>取消</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>文档对比</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>内容对比</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>叠加比较</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>旧文件</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>新文件</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>选择文件</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>点击添加文件</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>页面范围</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>旧文件</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>全部页面</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>奇数页</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>偶数页</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>自定义范围</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>例如 1,3-5,10</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>新文件</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>全部页面</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>奇数页</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>偶数页</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>自定义范围</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>例如 1,3-5,10</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>对比设置</value>
+    </data>
+    <data name="Setting_Opacity" xml:space="preserve">
+        <value>文档不透明度</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>旧文件</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>新文件</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>文档显示颜色</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>旧文件</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>新文件</value>
+    </data>
+    <data name="Setting_Blend" xml:space="preserve">
+        <value>混合模式</value>
+    </data>
+    <data name="Blend_Normal" xml:space="preserve">
+        <value>正常</value>
+    </data>
+    <data name="Blend_Multiply" xml:space="preserve">
+        <value>正片叠底</value>
+    </data>
+    <data name="Blend_Screen" xml:space="preserve">
+        <value>滤色</value>
+    </data>
+    <data name="Blend_Overlay" xml:space="preserve">
+        <value>叠加</value>
+    </data>
+    <data name="Blend_Darken" xml:space="preserve">
+        <value>变暗</value>
+    </data>
+    <data name="Blend_Lighten" xml:space="preserve">
+        <value>变亮</value>
+    </data>
+    <data name="Blend_ColorDodge" xml:space="preserve">
+        <value>颜色减淡</value>
+    </data>
+    <data name="Blend_ColorBurn" xml:space="preserve">
+        <value>颜色加深</value>
+    </data>
+    <data name="Blend_HardLight" xml:space="preserve">
+        <value>强光</value>
+    </data>
+    <data name="Blend_SoftLight" xml:space="preserve">
+        <value>柔光</value>
+    </data>
+    <data name="Blend_Difference" xml:space="preserve">
+        <value>差异</value>
+    </data>
+    <data name="Blend_Exclusion" xml:space="preserve">
+        <value>排除</value>
+    </data>
+    <data name="Blend_Hue" xml:space="preserve">
+        <value>色相</value>
+    </data>
+    <data name="Blend_Saturation" xml:space="preserve">
+        <value>饱和度</value>
+    </data>
+    <data name="Blend_Colour" xml:space="preserve">
+        <value>颜色</value>
+    </data>
+    <data name="Blend_Luminosity" xml:space="preserve">
+        <value>明度</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>对比</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>取消</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>选择文件</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>请选择两个文件进行对比</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>无效页码范围</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>您选择的页面范围无效,请重新选择。</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>比对结果即将揭晓</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>文件</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>帮助</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>打印</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>旧文件 .pdf</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>新文件 .pdf</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>文档对比</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>旧文件</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>新文件</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>保存</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>退出</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>注意</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>请确认您已经保存对比结果文件</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>确认</value>
+    </data>
+    <data name="" xml:space="preserve">
+        <value>取消</value>
+    </data>
+    <data name="Title_Delete" xml:space="preserve">
+        <value>删除</value>
+    </data>
+    <data name="Title_Replace" xml:space="preserve">
+        <value>替换</value>
+    </data>
+    <data name="Title_Insert" xml:space="preserve">
+        <value>插入</value>
+    </data>
+    <data name="Text_Page" xml:space="preserve">
+        <value>页码</value>
+    </data>
+    <data name="Delete_Page" xml:space="preserve">
+        <value>删除的页面</value>
+    </data>
+    <data name="Delete_Text" xml:space="preserve">
+        <value>删除的文本</value>
+    </data>
+    <data name="Delete_Image" xml:space="preserve">
+        <value>删除的图片</value>
+    </data>
+    <data name="Insert_Page" xml:space="preserve">
+        <value>插入的页面</value>
+    </data>
+    <data name="Insert_Text" xml:space="preserve">
+        <value>插入的文本</value>
+    </data>
+    <data name="Insert_Image" xml:space="preserve">
+        <value>插入的图片</value>
+    </data>
+</root>

+ 18 - 1
Demo/Examples/Compdfkit.Controls/Strings/ToolBar.Designer.cs

@@ -1,7 +1,6 @@
 //------------------------------------------------------------------------------
 // <auto-generated>
 //     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
 //     the code is regenerated.
@@ -87,6 +86,15 @@ namespace ComPDFKit.Controls.Strings {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Content Comparison.
+        /// </summary>
+        internal static string Button_ContentComparison {
+            get {
+                return ResourceManager.GetString("Button_ContentComparison", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to Copy.
         /// </summary>
@@ -177,6 +185,15 @@ namespace ComPDFKit.Controls.Strings {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Overlay Comparison.
+        /// </summary>
+        internal static string Button_OverlayComparison {
+            get {
+                return ResourceManager.GetString("Button_OverlayComparison", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to Paste.
         /// </summary>

+ 6 - 0
Demo/Examples/Compdfkit.Controls/Strings/ToolBar.resx

@@ -141,4 +141,10 @@
     <data name="Button_Rectangle" xml:space="preserve">
         <value>Rectangle</value>
     </data>
+    <data name="Button_ContentComparison" xml:space="preserve">
+        <value>Content Comparison</value>
+    </data>
+    <data name="Button_OverlayComparison" xml:space="preserve">
+        <value>Overlay Comparison</value>
+    </data>
 </root>

+ 6 - 0
Demo/Examples/Compdfkit.Controls/Strings/ToolBar.zh.resx

@@ -134,4 +134,10 @@
     <data name="Button_Line" xml:space="preserve">
         <value>线</value>
     </data>
+    <data name="Button_ContentComparison" xml:space="preserve">
+        <value>内容对比</value>
+    </data>
+    <data name="Button_OverlayComparison" xml:space="preserve">
+        <value>叠加比较</value>
+    </data>
 </root>

+ 1 - 1
Demo/Examples/PDFViewer/MainPage.xaml

@@ -196,7 +196,7 @@
                     <ComboBoxItem Tag="Document Editor" Content="{Binding Converter={StaticResource CommonResourceConverter},ConverterParameter=Func_DocEditor}"></ComboBoxItem>
                     <ComboBoxItem Tag="Digital Signature" Content="{Binding Converter={StaticResource CommonResourceConverter},ConverterParameter=Func_Signatures}"></ComboBoxItem>
                     <ComboBoxItem Tag="Measurement" Content="{Binding Converter={StaticResource CommonResourceConverter},ConverterParameter=Func_Measurement}"></ComboBoxItem>
-                    <ComboBoxItem Tag="Comparison" Content="Compare Documents"></ComboBoxItem>
+                    <ComboBoxItem Tag="Comparison" Content="{Binding Converter={StaticResource CommonResourceConverter},ConverterParameter=Func_DocCompare}"></ComboBoxItem>
 
                 </ComboBox>