Browse Source

Merge branch 'compdfkit_demo_windows' of http://git.kdan.cc:8865/Others/kmpdfkit_demo into compdfkit_demo_windows

# Conflicts:
#	compdfkit_demo_windows/compdfkit/compdfkit-tools/Common/PropertyControl/ColorPickerControl.xaml
zhuyi 1 year ago
parent
commit
1cecdbb8fd
21 changed files with 1219 additions and 253 deletions
  1. 6 1
      compdfkit_demo_windows/compdfkit/compdfkit-assets/Styles/ButtonStyle.xaml
  2. 652 0
      compdfkit_demo_windows/compdfkit/compdfkit-assets/Styles/SliderStyle.xaml
  3. 4 0
      compdfkit_demo_windows/compdfkit/compdfkit-assets/compdfkit-assets.csproj
  4. 1 1
      compdfkit_demo_windows/compdfkit/compdfkit-tools/Annotation/PDFAnnotationPanel/PDFAnnotationUI/CPDFCreateSignatureDialog.xaml
  5. BIN
      compdfkit_demo_windows/compdfkit/compdfkit-tools/Asset/Resource/Transparent_btn_ic.png
  6. 52 5
      compdfkit_demo_windows/compdfkit/compdfkit-tools/Common/PropertyControl/ColorPickerControl.xaml
  7. 15 20
      compdfkit_demo_windows/compdfkit/compdfkit-tools/Common/PropertyControl/ColorPickerControl.xaml.cs
  8. 9 1
      compdfkit_demo_windows/compdfkit/compdfkit-tools/Common/PropertyControl/PDFOpacity/CPDFOpactiyUI.xaml
  9. 99 89
      compdfkit_demo_windows/compdfkit/compdfkit-tools/Edit/PDFImageEdit/PDFImageEditControl/PDFImageEditControl.xaml
  10. 19 6
      compdfkit_demo_windows/compdfkit/compdfkit-tools/Edit/PDFImageEdit/PDFImageEditControl/PDFImageEditControl.xaml.cs
  11. 27 9
      compdfkit_demo_windows/compdfkit/compdfkit-tools/Edit/PDFImageEdit/PDFImageUI/CPDFImageFlipUI.xaml
  12. 36 4
      compdfkit_demo_windows/compdfkit/compdfkit-tools/Edit/PDFImageEdit/PDFImageUI/CPDFImageRotateUI.xaml
  13. 35 42
      compdfkit_demo_windows/compdfkit/compdfkit-tools/Edit/PDFTextEdit/PDFTextEditControl/PDFTextEditControl.xaml
  14. 31 3
      compdfkit_demo_windows/compdfkit/compdfkit-tools/Edit/PDFTextEdit/PDFTextEditControl/PDFTextEditControl.xaml.cs
  15. 20 17
      compdfkit_demo_windows/compdfkit/compdfkit-tools/Edit/PDFTextEdit/PDFTextEditUI/CPDFTextAlignUI.xaml
  16. 11 2
      compdfkit_demo_windows/compdfkit/compdfkit-tools/Edit/PDFTextEdit/PDFTextEditUI/CPDFTextAlignUI.xaml.cs
  17. 61 14
      compdfkit_demo_windows/compdfkit/compdfkit-tools/Edit/PDFTextEdit/PDFTextEditUI/CPDFTextStyleUI.xaml
  18. 71 20
      compdfkit_demo_windows/compdfkit/compdfkit-tools/Edit/PDFTextEdit/PDFTextEditUI/CPDFTextStyleUI.xaml.cs
  19. 1 0
      compdfkit_demo_windows/compdfkit/compdfkit-tools/compdfkit-tools.csproj
  20. 62 18
      compdfkit_demo_windows/compdfkit/edit-ctrl-demo/MainWindow.xaml
  21. 7 1
      compdfkit_demo_windows/compdfkit/edit-ctrl-demo/edit-ctrl-demo.csproj

+ 6 - 1
compdfkit_demo_windows/compdfkit/compdfkit-assets/Styles/ButtonStyle.xaml

@@ -128,7 +128,12 @@
                         <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
                         <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
                     </Trigger>
-                </ControlTemplate.Triggers>
+                    <Trigger Property="IsEnabled" Value="false">
+                            <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Disabled.Background}"/>
+                            <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Disabled.Border}"/>
+                            <Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"/>
+                     </Trigger>
+                    </ControlTemplate.Triggers>
             </ControlTemplate>
         </Setter.Value>
         </Setter>

+ 652 - 0
compdfkit_demo_windows/compdfkit/compdfkit-assets/Styles/SliderStyle.xaml

@@ -0,0 +1,652 @@
+<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
+    <Style TargetType="{x:Type Slider}" x:Key="SliderStyle"
+       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+       xmlns:s="clr-namespace:System;assembly=mscorlib">
+        <Style.Triggers>
+            <Trigger Property="Slider.Orientation"
+                 Value="Vertical">
+                <Setter Property="Control.Template">
+                    <Setter.Value>
+                        <ControlTemplate TargetType="{x:Type Slider}">
+                            <Border BorderThickness="{TemplateBinding Border.BorderThickness}"
+                                BorderBrush="{TemplateBinding Border.BorderBrush}"
+                                Background="{TemplateBinding Panel.Background}"
+                                Name="border"
+                                SnapsToDevicePixels="True">
+                                <Grid>
+                                    <Grid.ColumnDefinitions>
+                                        <ColumnDefinition Width="Auto" />
+                                        <ColumnDefinition Width="Auto"
+                                                      MinWidth="{TemplateBinding FrameworkElement.MinWidth}" />
+                                        <ColumnDefinition Width="Auto" />
+                                    </Grid.ColumnDefinitions>
+                                    <TickBar Fill="{TemplateBinding TextElement.Foreground}"
+                                         Placement="Left"
+                                         Name="TopTick"
+                                         Width="4"
+                                         Margin="0,0,2,0"
+                                         Visibility="Collapsed"
+                                         Grid.Column="0" />
+                                    <TickBar Fill="{TemplateBinding TextElement.Foreground}"
+                                         Placement="Right"
+                                         Name="BottomTick"
+                                         Width="4"
+                                         Margin="2,0,0,0"
+                                         Visibility="Collapsed"
+                                         Grid.Column="2" />
+                                    <Border BorderThickness="1"
+                                        BorderBrush="#D6D6D6"
+                                        Background="#E7EAEA"
+                                        Name="TrackBackground"
+                                        Width="4"
+                                        Margin="0,5"
+                                        HorizontalAlignment="Center"
+                                        Grid.Column="1">
+                                        <Canvas Margin="-1,-6">
+                                            <Rectangle Fill="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"
+                                                   Name="PART_SelectionRange"
+                                                   Width="4"
+                                                   Visibility="Hidden" />
+                                        </Canvas>
+                                    </Border>
+                                    <Track Name="PART_Track"
+                                       Grid.Column="1">
+                                        <Track.DecreaseRepeatButton>
+                                            <RepeatButton>
+                                                <RepeatButton.Command>
+                                                    <RoutedCommand />
+                                                </RepeatButton.Command>
+                                                <RepeatButton.Style>
+                                                    <Style TargetType="{x:Type RepeatButton}">
+                                                        <Setter Property="FrameworkElement.OverridesDefaultStyle"
+                                                            Value="True" />
+                                                        <Setter Property="Panel.Background"
+                                                            Value="#00FFFFFF" />
+                                                        <Setter Property="UIElement.Focusable"
+                                                            Value="False" />
+                                                        <Setter Property="KeyboardNavigation.IsTabStop"
+                                                            Value="False" />
+                                                        <Setter Property="Control.Template">
+                                                            <Setter.Value>
+                                                                <ControlTemplate TargetType="{x:Type RepeatButton}">
+                                                                    <Rectangle Fill="{TemplateBinding Panel.Background}"
+                                                                           Width="{TemplateBinding FrameworkElement.Width}"
+                                                                           Height="2" />
+                                                                </ControlTemplate>
+                                                            </Setter.Value>
+                                                        </Setter>
+                                                    </Style>
+                                                </RepeatButton.Style>
+                                            </RepeatButton>
+                                        </Track.DecreaseRepeatButton>
+                                        <Track.Thumb>
+                                            <Thumb OverridesDefaultStyle="True"
+                                               Name="Thumb"
+                                               Width="18"
+                                               Height="11"
+                                               VerticalAlignment="Top"
+                                               Focusable="False">
+                                                <Thumb.Template>
+                                                    <ControlTemplate TargetType="{x:Type Thumb}">
+                                                        <Grid UseLayoutRounding="True"
+                                                          HorizontalAlignment="Center"
+                                                          VerticalAlignment="Center">
+                                                            <Path
+                                              Stretch="Fill"
+                                              Fill="#477EDE"
+                                              Stroke="#477EDE"
+                                              StrokeThickness="1"
+                                              UseLayoutRounding="True"
+                                              Name="grip"
+                                              VerticalAlignment="Center"
+                                              SnapsToDevicePixels="True" >
+                                                                <Path.Data>
+                                                                    <RectangleGeometry Rect="0,0,8,16" RadiusX="4" RadiusY="4"></RectangleGeometry>
+                                                                </Path.Data>
+                                                            </Path>
+                                                        </Grid>
+                                                        <ControlTemplate.Triggers>
+                                                            <Trigger Property="UIElement.IsMouseOver"
+                                                                 Value="True">
+                                                                <Setter Property="Shape.Fill"
+                                                                    TargetName="grip"
+                                                                    Value="#477EDE" />
+                                                                <Setter Property="Shape.Stroke"
+                                                                    TargetName="grip"
+                                                                    Value="#477EDE" />
+                                                            </Trigger>
+                                                            <Trigger Property="Thumb.IsDragging"
+                                                                 Value="True">
+                                                                <Setter Property="Shape.Fill"
+                                                                    TargetName="grip"
+                                                                    Value="#477EDE" />
+                                                                <Setter Property="Shape.Stroke"
+                                                                    TargetName="grip"
+                                                                    Value="#477EDE" />
+                                                            </Trigger>
+                                                            <Trigger Property="UIElement.IsEnabled"
+                                                                 Value="False">
+                                                                <Setter Property="Shape.Fill"
+                                                                    TargetName="grip"
+                                                                    Value="#477EDE" />
+                                                                <Setter Property="Shape.Stroke"
+                                                                    TargetName="grip"
+                                                                    Value="#477EDE" />
+                                                            </Trigger>
+                                                        </ControlTemplate.Triggers>
+                                                    </ControlTemplate>
+                                                </Thumb.Template>
+                                            </Thumb>
+                                        </Track.Thumb>
+                                        <Track.IncreaseRepeatButton>
+                                            <RepeatButton>
+                                                <RepeatButton.Command>
+                                                    <RoutedCommand />
+                                                </RepeatButton.Command>
+                                                <RepeatButton.Style>
+                                                    <Style TargetType="{x:Type RepeatButton}">
+                                                        <Setter Property="FrameworkElement.OverridesDefaultStyle"
+                                                            Value="True" />
+                                                        <Setter Property="Panel.Background"
+                                                            Value="#00FFFFFF" />
+                                                        <Setter Property="UIElement.Focusable"
+                                                            Value="False" />
+                                                        <Setter Property="KeyboardNavigation.IsTabStop"
+                                                            Value="False" />
+                                                        <Setter Property="Control.Template">
+                                                            <Setter.Value>
+                                                                <ControlTemplate TargetType="{x:Type RepeatButton}">
+                                                                    <Rectangle Fill="{TemplateBinding Panel.Background}"
+                                                                           Width="{TemplateBinding FrameworkElement.Width}"
+                                                                           Height="2" />
+                                                                </ControlTemplate>
+                                                            </Setter.Value>
+                                                        </Setter>
+                                                    </Style>
+                                                </RepeatButton.Style>
+                                            </RepeatButton>
+                                        </Track.IncreaseRepeatButton>
+                                    </Track>
+                                </Grid>
+                            </Border>
+                            <ControlTemplate.Triggers>
+                                <Trigger Property="Slider.TickPlacement"
+                                     Value="TopLeft">
+                                    <Setter Property="UIElement.Visibility"
+                                        TargetName="TopTick"
+                                        Value="Visible" />
+                                    <Setter Property="Control.Template"
+                                        TargetName="Thumb">
+                                        <Setter.Value>
+                                            <ControlTemplate TargetType="{x:Type Thumb}">
+                                                <Grid UseLayoutRounding="True"
+                                                  HorizontalAlignment="Center"
+                                                  VerticalAlignment="Center">
+                                                    <Path
+                                              Stretch="Fill"
+                                              Fill="#477EDE"
+                                              Stroke="#477EDE"
+                                              StrokeThickness="1"
+                                              UseLayoutRounding="True"
+                                              Name="grip"
+                                              VerticalAlignment="Center"
+                                              SnapsToDevicePixels="True" >
+                                                        <Path.Data>
+                                                            <RectangleGeometry Rect="0,0,8,16" RadiusX="4" RadiusY="4"></RectangleGeometry>
+                                                        </Path.Data>
+                                                    </Path>
+                                                </Grid>
+                                                <ControlTemplate.Triggers>
+                                                    <Trigger Property="UIElement.IsMouseOver"
+                                                         Value="True">
+                                                        <Setter Property="Shape.Fill"
+                                                            TargetName="grip"
+                                                            Value="#477EDE" />
+                                                        <Setter Property="Shape.Stroke"
+                                                            TargetName="grip"
+                                                            Value="#477EDE" />
+                                                    </Trigger>
+                                                    <Trigger Property="Thumb.IsDragging"
+                                                         Value="True">
+                                                        <Setter Property="Shape.Fill"
+                                                            TargetName="grip"
+                                                            Value="#477EDE" />
+                                                        <Setter Property="Shape.Stroke"
+                                                            TargetName="grip"
+                                                            Value="#477EDE" />
+                                                    </Trigger>
+                                                    <Trigger Property="UIElement.IsEnabled"
+                                                         Value="False">
+                                                        <Setter Property="Shape.Fill"
+                                                            TargetName="grip"
+                                                            Value="#477EDE" />
+                                                        <Setter Property="Shape.Stroke"
+                                                            TargetName="grip"
+                                                            Value="#477EDE" />
+                                                    </Trigger>
+                                                </ControlTemplate.Triggers>
+                                            </ControlTemplate>
+                                        </Setter.Value>
+                                    </Setter>
+                                    <Setter Property="FrameworkElement.Margin"
+                                        TargetName="TrackBackground"
+                                        Value="2,5,0,5" />
+                                </Trigger>
+                                <Trigger Property="Slider.TickPlacement"
+                                     Value="BottomRight">
+                                    <Setter Property="UIElement.Visibility"
+                                        TargetName="BottomTick"
+                                        Value="Visible" />
+                                    <Setter Property="Control.Template"
+                                        TargetName="Thumb">
+                                        <Setter.Value>
+                                            <ControlTemplate TargetType="{x:Type Thumb}">
+                                                <Grid UseLayoutRounding="True"
+                                                  HorizontalAlignment="Center"
+                                                  VerticalAlignment="Center">
+                                                    <Path
+                                              Stretch="Fill"
+                                              Fill="#477EDE"
+                                              Stroke="#477EDE"
+                                              StrokeThickness="1"
+                                              UseLayoutRounding="True"
+                                              Name="grip"
+                                              VerticalAlignment="Center"
+                                              SnapsToDevicePixels="True" >
+                                                        <Path.Data>
+                                                            <RectangleGeometry Rect="0,0,8,16" RadiusX="4" RadiusY="4"></RectangleGeometry>
+                                                        </Path.Data>
+                                                    </Path>
+                                                </Grid>
+                                                <ControlTemplate.Triggers>
+                                                    <Trigger Property="UIElement.IsMouseOver"
+                                                         Value="True">
+                                                        <Setter Property="Shape.Fill"
+                                                            TargetName="grip"
+                                                            Value="#477EDE" />
+                                                        <Setter Property="Shape.Stroke"
+                                                            TargetName="grip"
+                                                            Value="#477EDE" />
+                                                    </Trigger>
+                                                    <Trigger Property="Thumb.IsDragging"
+                                                         Value="True">
+                                                        <Setter Property="Shape.Fill"
+                                                            TargetName="grip"
+                                                            Value="#477EDE" />
+                                                        <Setter Property="Shape.Stroke"
+                                                            TargetName="grip"
+                                                            Value="#477EDE" />
+                                                    </Trigger>
+                                                    <Trigger Property="UIElement.IsEnabled"
+                                                         Value="False">
+                                                        <Setter Property="Shape.Fill"
+                                                            TargetName="grip"
+                                                            Value="#477EDE" />
+                                                        <Setter Property="Shape.Stroke"
+                                                            TargetName="grip"
+                                                            Value="#477EDE" />
+                                                    </Trigger>
+                                                </ControlTemplate.Triggers>
+                                            </ControlTemplate>
+                                        </Setter.Value>
+                                    </Setter>
+                                    <Setter Property="FrameworkElement.Margin"
+                                        TargetName="TrackBackground"
+                                        Value="0,5,2,5" />
+                                </Trigger>
+                                <Trigger Property="Slider.TickPlacement"
+                                     Value="Both">
+                                    <Setter Property="UIElement.Visibility"
+                                        TargetName="TopTick"
+                                        Value="Visible" />
+                                    <Setter Property="UIElement.Visibility"
+                                        TargetName="BottomTick"
+                                        Value="Visible" />
+                                </Trigger>
+                                <Trigger Property="Slider.IsSelectionRangeEnabled"
+                                     Value="True">
+                                    <Setter Property="UIElement.Visibility"
+                                        TargetName="PART_SelectionRange"
+                                        Value="Visible" />
+                                </Trigger>
+                                <Trigger Property="UIElement.IsKeyboardFocused"
+                                     Value="True">
+                                    <Setter Property="TextElement.Foreground"
+                                        TargetName="Thumb"
+                                        Value="#0000FF" />
+                                </Trigger>
+                            </ControlTemplate.Triggers>
+                        </ControlTemplate>
+                    </Setter.Value>
+                </Setter>
+            </Trigger>
+        </Style.Triggers>
+        <Setter Property="Stylus.IsPressAndHoldEnabled"
+            Value="False" />
+        <Setter Property="Panel.Background"
+            Value="#00FFFFFF" />
+        <Setter Property="Border.BorderBrush"
+            Value="#00FFFFFF" />
+        <Setter Property="TextElement.Foreground"
+            Value="#E5E5E5" />
+        <Setter Property="Control.Template">
+            <Setter.Value>
+                <ControlTemplate TargetType="{x:Type Slider}">
+                    <Border BorderThickness="{TemplateBinding Border.BorderThickness}"
+                        BorderBrush="{TemplateBinding Border.BorderBrush}"
+                        Background="{TemplateBinding Panel.Background}"
+                        Name="border"
+                        SnapsToDevicePixels="True">
+                        <Grid>
+                            <Grid.RowDefinitions>
+                                <RowDefinition Height="Auto" />
+                                <RowDefinition Height="Auto"
+                                           MinHeight="{TemplateBinding FrameworkElement.MinHeight}" />
+                                <RowDefinition Height="Auto" />
+                            </Grid.RowDefinitions>
+                            <TickBar Fill="{TemplateBinding TextElement.Foreground}"
+                                 Placement="Top"
+                                 Name="TopTick"
+                                 Height="4"
+                                 Margin="0,2,0,0"
+                                 Visibility="Collapsed"
+                                 Grid.Row="0" />
+                            <TickBar Fill="{TemplateBinding TextElement.Foreground}"
+                                 Placement="Bottom"
+                                 Name="BottomTick"
+                                 Height="4"
+                                 Margin="0,0,0,2"
+                                 Visibility="Collapsed"
+                                 Grid.Row="2" />
+                            <Border BorderThickness="0"
+                                BorderBrush="#D6D6D6"
+                                Background="#FFE2E3E6"
+                                Name="TrackBackground"
+                                Height="4"
+                                Margin="5,0"
+                                VerticalAlignment="Center"
+                                Grid.Row="1">
+                                <Canvas Margin="-6,-1">
+                                    <Rectangle Fill="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"
+                                           Name="PART_SelectionRange"
+                                           Height="4"
+                                           Visibility="Hidden" />
+                                </Canvas>
+                            </Border>
+                            <Track Name="PART_Track"
+                               Grid.Row="1">
+                                <Track.DecreaseRepeatButton>
+                                    <RepeatButton>
+                                        <RepeatButton.Command>
+                                            <RoutedCommand />
+                                        </RepeatButton.Command>
+                                        <RepeatButton.Style>
+                                            <Style TargetType="{x:Type RepeatButton}">
+                                                <Setter Property="FrameworkElement.OverridesDefaultStyle"
+                                                    Value="True" />
+                                                <Setter Property="Panel.Background"
+                                                    Value="#00FFFFFF" />
+                                                <Setter Property="UIElement.Focusable"
+                                                    Value="False" />
+                                                <Setter Property="KeyboardNavigation.IsTabStop"
+                                                    Value="False" />
+                                                <Setter Property="Control.Template">
+                                                    <Setter.Value>
+                                                        <ControlTemplate TargetType="{x:Type RepeatButton}">
+                                                            <Rectangle Fill="{TemplateBinding Panel.Background}"
+                                                                   Width="{TemplateBinding FrameworkElement.Width}"
+                                                                   Height="{TemplateBinding FrameworkElement.Height}" />
+                                                        </ControlTemplate>
+                                                    </Setter.Value>
+                                                </Setter>
+                                            </Style>
+                                        </RepeatButton.Style>
+                                    </RepeatButton>
+                                </Track.DecreaseRepeatButton>
+                                <Track.Thumb>
+                                    <Thumb OverridesDefaultStyle="True"
+                                       Name="Thumb"
+                                       Width="8"
+                                       Height="16"
+                                       VerticalAlignment="Center"
+                                       Focusable="False">
+                                        <Thumb.Template>
+                                            <ControlTemplate TargetType="{x:Type Thumb}">
+                                                <Grid UseLayoutRounding="True"
+                                                  HorizontalAlignment="Center"
+                                                  VerticalAlignment="Center">
+                                                    <Path
+                                              Stretch="Fill"
+                                              Fill="#477EDE"
+                                              Stroke="#477EDE"
+                                              StrokeThickness="1"
+                                              UseLayoutRounding="True"
+                                              Name="grip"
+                                              VerticalAlignment="Center"
+                                              SnapsToDevicePixels="True" >
+                                                        <Path.Data>
+                                                            <RectangleGeometry Rect="0,0,8,16" RadiusX="4" RadiusY="4"></RectangleGeometry>
+                                                        </Path.Data>
+                                                    </Path>
+                                                </Grid>
+                                                <ControlTemplate.Triggers>
+                                                    <Trigger Property="UIElement.IsMouseOver"
+                                                         Value="True">
+                                                        <Setter Property="Shape.Fill"
+                                                            TargetName="grip"
+                                                            Value="#477EDE" />
+                                                        <Setter Property="Shape.Stroke"
+                                                            TargetName="grip"
+                                                            Value="#477EDE" />
+                                                    </Trigger>
+                                                    <Trigger Property="Thumb.IsDragging"
+                                                         Value="True">
+                                                        <Setter Property="Shape.Fill"
+                                                            TargetName="grip"
+                                                            Value="#477EDE" />
+                                                        <Setter Property="Shape.Stroke"
+                                                            TargetName="grip"
+                                                            Value="#477EDE" />
+                                                    </Trigger>
+                                                    <Trigger Property="UIElement.IsEnabled"
+                                                         Value="False">
+                                                        <Setter Property="Shape.Fill"
+                                                            TargetName="grip"
+                                                            Value="#477EDE" />
+                                                        <Setter Property="Shape.Stroke"
+                                                            TargetName="grip"
+                                                            Value="#477EDE" />
+                                                    </Trigger>
+                                                </ControlTemplate.Triggers>
+                                            </ControlTemplate>
+                                        </Thumb.Template>
+                                    </Thumb>
+                                </Track.Thumb>
+                                <Track.IncreaseRepeatButton>
+                                    <RepeatButton>
+                                        <RepeatButton.Command>
+                                            <RoutedCommand />
+                                        </RepeatButton.Command>
+                                        <RepeatButton.Style>
+                                            <Style TargetType="{x:Type RepeatButton}">
+                                                <Setter Property="FrameworkElement.OverridesDefaultStyle"
+                                                    Value="True" />
+                                                <Setter Property="Panel.Background"
+                                                    Value="#00FFFFFF" />
+                                                <Setter Property="UIElement.Focusable"
+                                                    Value="False" />
+                                                <Setter Property="KeyboardNavigation.IsTabStop"
+                                                    Value="False" />
+                                                <Setter Property="Control.Template">
+                                                    <Setter.Value>
+                                                        <ControlTemplate TargetType="{x:Type RepeatButton}">
+                                                            <Rectangle Fill="{TemplateBinding Panel.Background}"
+                                                                   Width="{TemplateBinding FrameworkElement.Width}"
+                                                                   Height="{TemplateBinding FrameworkElement.Height}"
+                                                                   />
+                                                        </ControlTemplate>
+                                                    </Setter.Value>
+                                                </Setter>
+                                            </Style>
+                                        </RepeatButton.Style>
+                                    </RepeatButton>
+                                </Track.IncreaseRepeatButton>
+                            </Track>
+                        </Grid>
+                    </Border>
+                    <ControlTemplate.Triggers>
+                        <Trigger Property="Slider.TickPlacement"
+                             Value="TopLeft">
+                            <Setter Property="UIElement.Visibility"
+                                TargetName="TopTick"
+                                Value="Visible" />
+                            <Setter Property="Control.Template"
+                                TargetName="Thumb">
+                                <Setter.Value>
+                                    <ControlTemplate TargetType="{x:Type Thumb}">
+                                        <Grid UseLayoutRounding="True"
+                                          HorizontalAlignment="Center"
+                                          VerticalAlignment="Center">
+                                            <Path
+                                              Stretch="Fill"
+                                              Fill="#477EDE"
+                                              Stroke="#477EDE"
+                                              StrokeThickness="1"
+                                              UseLayoutRounding="True"
+                                              Name="grip"
+                                              VerticalAlignment="Center"
+                                              SnapsToDevicePixels="True" >
+                                                <Path.Data>
+                                                    <RectangleGeometry Rect="0,0,8,16" RadiusX="4" RadiusY="4"></RectangleGeometry>
+                                                </Path.Data>
+                                            </Path>
+                                        </Grid>
+                                        <ControlTemplate.Triggers>
+                                            <Trigger Property="UIElement.IsMouseOver"
+                                                 Value="True">
+                                                <Setter Property="Shape.Fill"
+                                                    TargetName="grip"
+                                                    Value="#477EDE" />
+                                                <Setter Property="Shape.Stroke"
+                                                    TargetName="grip"
+                                                    Value="#477EDE" />
+                                            </Trigger>
+                                            <Trigger Property="Thumb.IsDragging"
+                                                 Value="True">
+                                                <Setter Property="Shape.Fill"
+                                                    TargetName="grip"
+                                                    Value="#477EDE" />
+                                                <Setter Property="Shape.Stroke"
+                                                    TargetName="grip"
+                                                    Value="#477EDE" />
+                                            </Trigger>
+                                            <Trigger Property="UIElement.IsEnabled"
+                                                 Value="False">
+                                                <Setter Property="Shape.Fill"
+                                                    TargetName="grip"
+                                                    Value="#477EDE" />
+                                                <Setter Property="Shape.Stroke"
+                                                    TargetName="grip"
+                                                    Value="#477EDE" />
+                                            </Trigger>
+                                        </ControlTemplate.Triggers>
+                                    </ControlTemplate>
+                                </Setter.Value>
+                            </Setter>
+                            <Setter Property="FrameworkElement.Margin"
+                                TargetName="TrackBackground"
+                                Value="5,2,5,0" />
+                        </Trigger>
+                        <Trigger Property="Slider.TickPlacement"
+                             Value="BottomRight">
+                            <Setter Property="UIElement.Visibility"
+                                TargetName="BottomTick"
+                                Value="Visible" />
+                            <Setter Property="Control.Template"
+                                TargetName="Thumb">
+                                <Setter.Value>
+                                    <ControlTemplate TargetType="{x:Type Thumb}">
+                                        <Grid UseLayoutRounding="True"
+                                          HorizontalAlignment="Center"
+                                          VerticalAlignment="Center">
+                                            <Path
+                                              Stretch="Fill"
+                                              Fill="#477EDE"
+                                              Stroke="#477EDE"
+                                              StrokeThickness="1"
+                                              UseLayoutRounding="True"
+                                              Name="grip"
+                                              VerticalAlignment="Center"
+                                              SnapsToDevicePixels="True" >
+                                                <Path.Data>
+                                                    <RectangleGeometry Rect="0,0,8,16" RadiusX="4" RadiusY="4"></RectangleGeometry>
+                                                </Path.Data>
+                                            </Path>
+                                        </Grid>
+                                        <ControlTemplate.Triggers>
+                                            <Trigger Property="UIElement.IsMouseOver"
+                                                 Value="True">
+                                                <Setter Property="Shape.Fill"
+                                                    TargetName="grip"
+                                                    Value="#477EDE" />
+                                                <Setter Property="Shape.Stroke"
+                                                    TargetName="grip"
+                                                    Value="#477EDE" />
+                                            </Trigger>
+                                            <Trigger Property="Thumb.IsDragging"
+                                                 Value="True">
+                                                <Setter Property="Shape.Fill"
+                                                    TargetName="grip"
+                                                    Value="#477EDE" />
+                                                <Setter Property="Shape.Stroke"
+                                                    TargetName="grip"
+                                                    Value="#477EDE" />
+                                            </Trigger>
+                                            <Trigger Property="UIElement.IsEnabled"
+                                                 Value="False">
+                                                <Setter Property="Shape.Fill"
+                                                    TargetName="grip"
+                                                    Value="#477EDE" />
+                                                <Setter Property="Shape.Stroke"
+                                                    TargetName="grip"
+                                                    Value="#477EDE" />
+                                            </Trigger>
+                                        </ControlTemplate.Triggers>
+                                    </ControlTemplate>
+                                </Setter.Value>
+                            </Setter>
+                            <Setter Property="FrameworkElement.Margin"
+                                TargetName="TrackBackground"
+                                Value="5,0,5,2" />
+                        </Trigger>
+                        <Trigger Property="Slider.TickPlacement"
+                             Value="Both">
+                            <Setter Property="UIElement.Visibility"
+                                TargetName="TopTick"
+                                Value="Visible" />
+                            <Setter Property="UIElement.Visibility"
+                                TargetName="BottomTick"
+                                Value="Visible" />
+                        </Trigger>
+                        <Trigger Property="Slider.IsSelectionRangeEnabled"
+                             Value="True">
+                            <Setter Property="UIElement.Visibility"
+                                TargetName="PART_SelectionRange"
+                                Value="Visible" />
+                        </Trigger>
+                        <Trigger Property="UIElement.IsKeyboardFocused"
+                             Value="True">
+                            <Setter Property="TextElement.Foreground"
+                                TargetName="Thumb"
+                                Value="#0000FF" />
+                        </Trigger>
+                    </ControlTemplate.Triggers>
+                </ControlTemplate>
+            </Setter.Value>
+        </Setter>
+        <Setter Property="SelectionStart" Value="{Binding Minimum, RelativeSource={RelativeSource Self}}" />
+        <Setter Property="SelectionEnd" Value="{Binding Value, RelativeSource={RelativeSource Self}}" />
+    </Style>
+</ResourceDictionary>

+ 4 - 0
compdfkit_demo_windows/compdfkit/compdfkit-assets/compdfkit-assets.csproj

@@ -66,6 +66,10 @@
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>
     </Page>
+    <Page Include="Styles\SliderStyle.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
     <Page Include="Styles\TextBoxStyle.xaml">
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>

+ 1 - 1
compdfkit_demo_windows/compdfkit/compdfkit-tools/Annotation/PDFAnnotationPanel/PDFAnnotationUI/CPDFCreateSignatureDialog.xaml

@@ -347,7 +347,7 @@
                             HorizontalAlignment="Right"
                             VerticalAlignment="Center"
                             Orientation="Horizontal">
-                        <common:ColorPickerControl x:Name="ColorPickerControl" ColorChanged="ColorPickerControl_ColorChanged"></common:ColorPickerControl>
+                        <common:ColorPickerControl x:Name="ColorPickerControl"  ColorChanged="ColorPickerControl_ColorChanged"></common:ColorPickerControl>
                     </StackPanel>
                 </Grid>
             </TabItem>

BIN
compdfkit_demo_windows/compdfkit/compdfkit-tools/Asset/Resource/Transparent_btn_ic.png


+ 52 - 5
compdfkit_demo_windows/compdfkit/compdfkit-tools/Common/PropertyControl/ColorPickerControl.xaml

@@ -7,6 +7,53 @@
              xmlns:local="clr-namespace:compdfkit_tools.Common" 
              d:DesignHeight="40" d:DesignWidth="220">
     <UserControl.Resources>
+
+        <Style x:Key="TransparentRadioButton" TargetType="{x:Type RadioButton}">
+            <Setter Property="HorizontalAlignment" Value="Center" />
+            <Setter Property="VerticalAlignment" Value="Center" />
+            <Setter Property="Height" Value="28" />
+            <Setter Property="Width" Value="28" />
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type RadioButton}">
+                        <Grid>
+                            <Ellipse x:Name="BackgroundEllipse" Visibility="Visible"
+                             Height="24"
+                             Width="24">
+                                <Ellipse.Fill>
+                                    <DrawingBrush>
+                                        <DrawingBrush.Drawing>
+                                            <ImageDrawing ImageSource="  pack://application:,,,/com.compdfkit.tools;component/Asset/Resource/Transparent_btn_ic.png">
+                                                <ImageDrawing.Rect>
+                                                    <Rect Width="16" Height="16" />
+                                                </ImageDrawing.Rect>
+                                            </ImageDrawing>
+                                        </DrawingBrush.Drawing>
+                                    </DrawingBrush>
+                                </Ellipse.Fill>
+                            </Ellipse>
+                            <Border x:Name="CheckedEllipse"
+                                    BorderBrush="#1460F3"
+                                    CornerRadius="24"
+                                    BorderThickness="1"
+                                    Visibility="Collapsed"
+                             Height="28"
+                             Width="28" />
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsChecked" Value="True">
+                                <Setter TargetName="BackgroundEllipse" Property="Stroke" Value="White" />
+                                <Setter TargetName="CheckedEllipse" Property="Visibility" Value="Visible" />
+                            </Trigger>
+                            <Trigger Property="IsMouseOver" Value="True">
+                                <Setter TargetName="BackgroundEllipse" Property="Stroke" Value="White" />
+                                <Setter TargetName="CheckedEllipse" Property="Visibility" Value="Visible" />
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
         <Style x:Key="CommonColorRadioButton" TargetType="{x:Type RadioButton}">
             <Setter Property="HorizontalAlignment" Value="Center" />
             <Setter Property="VerticalAlignment" Value="Center" />
@@ -102,12 +149,12 @@
             <ColumnDefinition></ColumnDefinition>
             <ColumnDefinition></ColumnDefinition>
             <ColumnDefinition Width="2*"></ColumnDefinition>
-
         </Grid.ColumnDefinitions>
-        <RadioButton Background="#FF0000" Style="{StaticResource CommonColorRadioButton}" Tag="Red" Click="ColorRadioButton_Click" Visibility="Visible"></RadioButton>
-        <RadioButton Background="#000000" Grid.Column="1" Style="{StaticResource CommonColorRadioButton}" Tag="Black" Click="ColorRadioButton_Click"></RadioButton>
-        <RadioButton Background="#00FF00" Grid.Column="2" Style="{StaticResource CommonColorRadioButton}" Tag="Green"  Click="ColorRadioButton_Click"></RadioButton>
-        <RadioButton Background="#0000FF" Grid.Column="3" Style="{StaticResource CommonColorRadioButton}" Tag="Blue" Click="ColorRadioButton_Click"></RadioButton>
+        <RadioButton  Background="Transparent" Style="{StaticResource TransparentRadioButton}" Tag="Red" Click="ColorRadioButton_Click" Visibility="{Binding TransparentBtnProperty, RelativeSource={RelativeSource AncestorType={x:Type local:ColorPickerControl}},Mode=TwoWay}"></RadioButton>
+        <RadioButton  Background="#FF0000" Grid.Column="1" Style="{StaticResource CommonColorRadioButton}" Tag="Red" Click="ColorRadioButton_Click" Visibility="Visible"></RadioButton>
+        <RadioButton  Background="#FFEC66" Grid.Column="2" Style="{StaticResource CommonColorRadioButton}" Tag="Black" Click="ColorRadioButton_Click"></RadioButton>
+        <RadioButton  Background="#2D77FA" Grid.Column="3" Style="{StaticResource CommonColorRadioButton}" Tag="Green"  Click="ColorRadioButton_Click"></RadioButton>
+
         <RadioButton x:Name="CustomColorRadioButton" Background="{Binding Brush, RelativeSource={RelativeSource AncestorType={x:Type local:ColorPickerControl}},Mode=TwoWay}" Grid.Column="4" Style="{StaticResource CustomColorRadioButton}" GroupName="Color" Click="CustomColorRadioButton_Click"></RadioButton>
     </Grid>
 </UserControl>

+ 15 - 20
compdfkit_demo_windows/compdfkit/compdfkit-tools/Common/PropertyControl/ColorPickerControl.xaml.cs

@@ -27,6 +27,20 @@ namespace compdfkit_tools.Common
         public event PropertyChangedEventHandler PropertyChanged;
         public event EventHandler ColorChanged;
 
+
+
+        public Visibility TransparentBtnProperty
+        {
+            get { return (Visibility)GetValue(TransparentBtnPropertyProperty); }
+            set { SetValue(TransparentBtnPropertyProperty, value); }
+        }
+
+        // Using a DependencyProperty as the backing store for TransparentBtnProperty.  This enables animation, styling, binding, etc...
+        public static readonly DependencyProperty TransparentBtnPropertyProperty =
+            DependencyProperty.Register("TransparentBtnProperty", typeof(Visibility), typeof(ColorPickerControl), new PropertyMetadata(Visibility.Visible));
+
+
+
         /// <summary>
         /// 设置允许为空
         /// </summary>
@@ -86,26 +100,7 @@ namespace compdfkit_tools.Common
             var radioButton = sender as RadioButton;
             if (radioButton != null)
             {
-                if (radioButton.Tag.ToString() == "None")
-                {
-                    Brush = Brushes.Transparent;
-                }
-                if (radioButton.Tag.ToString() == "Red")
-                {
-                    Brush = Brushes.Red;
-                }
-                else if (radioButton.Tag.ToString() == "Black")
-                {
-                    Brush = Brushes.Black;
-                }
-                else if (radioButton.Tag.ToString() == "Green")
-                {
-                    Brush = Brushes.Green;
-                }
-                else if (radioButton.Tag.ToString() == "Blue")
-                {
-                    Brush = Brushes.Blue;
-                }
+                Brush=radioButton.Background;
             }
         }
     }

+ 9 - 1
compdfkit_demo_windows/compdfkit/compdfkit-tools/Common/PropertyControl/PDFOpacity/CPDFOpactiyUI.xaml

@@ -6,12 +6,20 @@
              xmlns:local="clr-namespace:compdfkit_tools.Common"
              mc:Ignorable="d" 
              d:DesignHeight="40" d:DesignWidth="300">
+    <UserControl.Resources>
+        <ResourceDictionary>
+            <ResourceDictionary.MergedDictionaries>
+                <ResourceDictionary Source="pack://application:,,,/compdfkit-assets;component/Styles/SliderStyle.xaml"></ResourceDictionary>
+            </ResourceDictionary.MergedDictionaries>
+        </ResourceDictionary>
+    </UserControl.Resources>
     <Grid>
         <Grid.ColumnDefinitions>
             <ColumnDefinition></ColumnDefinition>
             <ColumnDefinition Width="80"></ColumnDefinition>
         </Grid.ColumnDefinitions>
-        <Slider MinHeight="40" VerticalAlignment="Center" Maximum="100" Minimum="0" TickFrequency="1" IsSnapToTickEnabled="True" Value="{Binding OpacityValue, Mode=TwoWay}" Margin="10,0,10,0"></Slider>
+        <Slider  Style="{StaticResource SliderStyle}" MinHeight="40" VerticalAlignment="Center" Maximum="100" Minimum="0" TickFrequency="1" 
+                 IsSnapToTickEnabled="True" Value="{Binding OpacityValue, Mode=TwoWay}" Margin="10,0,10,0"></Slider>
         <local:DropDownNumberBoxControl x:Name="DropDownNumberBoxControl"  Grid.Column="1" Unit="%" Maxium="100" Minimum="1" Text="{Binding OpacityValue,Mode=TwoWay}"></local:DropDownNumberBoxControl>
     </Grid>
 </UserControl>

+ 99 - 89
compdfkit_demo_windows/compdfkit/compdfkit-tools/Edit/PDFImageEdit/PDFImageEditControl/PDFImageEditControl.xaml

@@ -7,6 +7,15 @@
              xmlns:common="clr-namespace:compdfkit_tools.Common"
              mc:Ignorable="d" 
              d:DesignHeight="450" d:DesignWidth="800" MinWidth="250" Padding="10">
+    <UserControl.Resources>
+        <ResourceDictionary>
+            <ResourceDictionary.MergedDictionaries>
+                <ResourceDictionary Source="pack://application:,,,/compdfkit-assets;component/Styles/ButtonStyle.xaml"></ResourceDictionary>
+                <ResourceDictionary Source="pack://application:,,,/compdfkit-assets;component/Styles/SliderStyle.xaml"></ResourceDictionary>
+            </ResourceDictionary.MergedDictionaries>
+        </ResourceDictionary>
+    </UserControl.Resources>
+    
     <Grid>
         <Grid.RowDefinitions>
             <RowDefinition Height="auto"></RowDefinition>
@@ -15,38 +24,41 @@
             <RowDefinition Height="auto"></RowDefinition>
             <RowDefinition Height="auto"></RowDefinition>
             <RowDefinition Height="auto"></RowDefinition>
-            <RowDefinition Height="auto"></RowDefinition>
-            <RowDefinition Height="auto"></RowDefinition>
         </Grid.RowDefinitions>
 
-        <TextBlock FontSize="20" FontWeight="Bold" HorizontalAlignment="Center">图片属性</TextBlock>
+        <Border Background="White" Height="36">
+            <TextBlock FontSize="14" FontWeight="Bold" HorizontalAlignment="Center" Foreground="#42464D" VerticalAlignment="Center">Image</TextBlock>
+        </Border>
 
-        <Border Background="LightGray" Grid.Row="1" MinHeight="100" CornerRadius="5" Margin="0,10,0,0">
-            <Image Name="ImageThumbUI" MaxHeight="100" MaxWidth="230"></Image>
+        <Border Background="#E2E3E6" Grid.Row="1" MinHeight="100" CornerRadius="5" Margin="0,16,0,0" BorderThickness="1">
+            <Image Name="ImageThumbUI" MaxHeight="80" MaxWidth="230"></Image>
         </Border>
         
         <!--图片旋转-->
-        <local:CPDFImageRotateUI x:Name="RotateUI" Grid.Row="2" FontSize="16" Margin="0,10,0,0"></local:CPDFImageRotateUI>
+        <local:CPDFImageRotateUI x:Name="RotateUI" Grid.Row="2" FontSize="16" Margin="0,33,0,0"></local:CPDFImageRotateUI>
         
         <!--图片翻转-->
         <local:CPDFImageFlipUI x:Name="FlipUI" Grid.Row="3" FontSize="16" Margin="0,10,0,0"></local:CPDFImageFlipUI>
         
         <!--透明度-->
         <Grid Grid.Row="4" Margin="0,20,0,0">
+            <Grid.ColumnDefinitions>
+                <ColumnDefinition Width="*"></ColumnDefinition>
+                <ColumnDefinition Width="auto"></ColumnDefinition>
+            </Grid.ColumnDefinitions>
             <Grid.RowDefinitions>
                 <RowDefinition Height="auto"></RowDefinition>
                 <RowDefinition Height="auto"></RowDefinition>
             </Grid.RowDefinitions>
 
-            <TextBlock FontSize="16">透明度:</TextBlock>
-            
-            <StackPanel Grid.Row="1" Orientation="Horizontal">
-                <Slider Width="150"
-                    Name="ImageOpacitySlider" 
-                    Value="1"  
+            <TextBlock FontSize="14" Foreground="#43474D">Opacity:</TextBlock>
+
+            <Slider Style="{StaticResource SliderStyle}" Grid.Row="1" Width="148" Height="28"
+                    Name="ImasgeOpacitySlider" 
+                    Value="14"  
                     IsSelectionRangeEnabled="True" 
                     IsMoveToPointEnabled="True" 
-                    Margin="2,5,10,0"  
+                    Margin="2,20,2,0"  
                     Maximum="1" 
                     Minimum="0" 
                     TickFrequency="0.01"
@@ -56,84 +68,82 @@
                     ValueChanged="SliderOpacity_ValueChanged"
                     Tag="true"
                     />
-                <TextBox Name="ImageOpacityBox" Grid.Column="1" Margin="0,5,0,0" Height="20" Width="50" 
-                         VerticalContentAlignment="Center" HorizontalContentAlignment="Center" 
-                         IsReadOnly="True">100%</TextBox>
-            </StackPanel>
+
+            <Grid Grid.Row="1" Grid.Column="1" Margin="0,10,0,0">
+                <ComboBox Name="OpacityComboBox" VerticalContentAlignment="Center" Width="72" Height="28" Foreground="#43474D" FontSize="14"
+                              SelectionChanged="OpacityComboBox_SelectionChanged" BorderBrush="#1E000000">
+                    <ComboBoxItem>25%</ComboBoxItem>
+                    <ComboBoxItem>50%</ComboBoxItem>
+                    <ComboBoxItem>75%</ComboBoxItem>
+                    <ComboBoxItem>100%</ComboBoxItem>
+                </ComboBox>
+                <TextBox Name="OpacityTextBox" IsHitTestVisible="False" Width="72" Height="30" VerticalContentAlignment="Center" HorizontalContentAlignment="Center"
+                             IsReadOnly="True" Background="White" Padding="0,0,15,0" FontSize="14">100%</TextBox>
+                <Path Fill="#43474D" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,5,0" IsHitTestVisible="False">
+                    <Path.Data>
+                        M0.5 0.510248L4.5041 5.5L8.5 0.5L0.5 0.510248Z
+                    </Path.Data>
+                </Path>
+            </Grid>
         </Grid>
-       
-        
-        <!--图片替换-->
+    
         <Grid Grid.Row="5" Margin="0,20,0,0">
-            <Grid.ColumnDefinitions>
-                <ColumnDefinition Width="*"></ColumnDefinition>
-                <ColumnDefinition Width="*"></ColumnDefinition>
-            </Grid.ColumnDefinitions>
-            <TextBlock VerticalAlignment="Center" FontSize="16">图片替换:</TextBlock>
-            <Button Grid.Column="1" Width="40" Height="25" BorderThickness="0" Click="ImageReplaceBtn_Click">
-                <Button.Content>
-                    <Path Fill="Gray">
-                        <Path.Data>
-                            M0.75 3.25C0.75 1.73122 1.98122 0.5 3.5 0.5H18.5C20.0188 0.5 21.25 1.73122 21.25 3.25V14.7511C21.25 16.2699 20.0188 17.5011 18.5 
-                                17.5011H3.5C1.98122 17.5011 0.75 16.2699 0.75 14.7511V3.25ZM3.5 2C2.80964 2 2.25 2.55964 2.25 3.25V9.80764L4.62588 7.18104C5.29052 
-                                6.44627 6.43205 6.40929 7.14284 7.09952L10.8426 10.6922C10.9226 10.7699 11.0443 10.7852 11.141 10.7298L14.8017 8.63369C15.3394 8.32578 
-                                15.9999 8.32519 16.5382 8.63215L19.75 10.4637V3.25C19.75 2.55964 19.1904 2 18.5 2H3.5ZM19.75 12.1905L15.7951 9.93517C15.7182 9.89132 
-                                15.6239 9.8914 15.547 9.93539L11.8864 12.0315C11.2093 12.4192 10.3574 12.3119 9.79764 11.7683L6.09787 8.17563C5.99633 8.07703 5.83325 
-                                8.08231 5.7383 8.18728L2.25 12.0437V14.7511C2.25 15.4415 2.80964 16.0011 3.5 16.0011H18.5C19.1904 16.0011 19.75 15.4415 19.75 
-                                14.7511V12.1905ZM17.2732 5.63378C17.2732 6.45448 16.6016 7.11979 15.7732 7.11979C14.9448 7.11979 14.2732 6.45448 14.2732 5.63378C14.2732 
-                                4.81308 14.9448 4.14777 15.7732 4.14777C16.6016 4.14777 17.2732 4.81308 17.2732 5.63378Z
-                        </Path.Data>
-                    </Path>
-                </Button.Content>
-            </Button>
-        </Grid>
-       
-        <!--图片导出-->
-        <Grid Grid.Row="6"  Margin="0,10,0,0">
-            <Grid.ColumnDefinitions>
-                <ColumnDefinition Width="*"></ColumnDefinition>
-                <ColumnDefinition Width="*"></ColumnDefinition>
-            </Grid.ColumnDefinitions>
-            <TextBlock VerticalAlignment="Center" FontSize="16">图片导出:</TextBlock>
-            <Button Grid.Column="1" Width="40" Height="25" BorderThickness="0" Click="ImageExportBtn_Click">
-                <Button.Content>
-                    <Viewbox>
-                        <Path Fill="Gray">
-                            <Path.Data>
-                                M903.872912 0H120.127088A120.127088 120.127088 0 0 0 0 120.127088v783.745824a120.127088 120.127088 0 0 0 120.127088 120.127088h783.745824a120.127088
-                            120.127088 0 0 0 120.127088-120.127088V120.127088A120.127088 120.127088 0 0 0 903.872912 0zM353.707536 278.628106l135.977189-135.97719a31.283096
-                            31.283096 0 0 1 44.213442 0l135.977189 135.97719A31.283096 31.283096 0 1 1 625.661914 322.841548l-83.421588-83.421589V717.425662a31.283096 31.283096
-                            0 0 1-62.566192 0V240.254175l-83.421588 83.421589a31.283096 31.283096 0 0 1-42.54501-45.047658zM871.755601 803.349898a87.17556 87.17556 0 0 1-87.17556
-                            87.17556H239.419959a87.17556 87.17556 0 0 1-87.17556-87.17556v-158.08391a31.283096 31.283096 0 0 1 62.566192 0v158.08391a24.609369 24.609369 0 0 0 24.609368
-                            24.609369h545.160082a24.609369 24.609369 0 0 0 24.609368-24.609369v-162.25499a31.283096 31.283096 0 0 1 62.566192 0z
-                            </Path.Data>
-                        </Path>
-                    </Viewbox>
-                </Button.Content>
-            </Button>
-        </Grid>
-        
-        <!--图片裁剪-->
-        <Grid Grid.Row="7"  Margin="0,10,0,0">
-            <Grid.ColumnDefinitions>
-                <ColumnDefinition Width="*"></ColumnDefinition>
-                <ColumnDefinition Width="*"></ColumnDefinition>
-            </Grid.ColumnDefinitions>
-            <TextBlock VerticalAlignment="Center" FontSize="16">图片裁剪:</TextBlock>
-            <Button Grid.Column="1" Width="40" Height="25" BorderThickness="0" Click="ImageClipBtn_Click">
-                <Button.Content>
-                    <Path Fill="Gray">
-                        <Path.Data>
-                            M5.00786 2.39823C4.9582 2.03215 4.6444 1.75 4.26471 1.75C3.85049 1.75 3.51471 2.08579 3.51471 2.5V3.51471H2.5L2.39823 3.52155C2.03215 3.57121 
-                                1.75 3.88501 1.75 4.26471L1.75685 4.36648C1.80651 4.73255 2.1203 5.01471 2.5 5.01471L3.51471 5.01465V15.7353L3.52155 15.8371C3.57121 16.2031 
-                                3.88501 16.4853 4.26471 16.4853H14.9853L14.9853 17.5L14.9921 17.6018C15.0418 17.9678 15.3556 18.25 15.7353 18.25C16.1495 18.25 16.4853 17.9142 
-                                16.4853 17.5V16.4853H17.5L17.6018 16.4784C17.9678 16.4288 18.25 16.115 18.25 15.7353L18.2432 15.6335C18.1935 15.2674 17.8797 14.9853 17.5 
-                                14.9853L16.4853 14.9853V4.26471L16.4784 4.16294C16.4288 3.79686 16.115 3.51471 15.7353 3.51471H5.01465L5.01471 2.5L5.00786 2.39823ZM5.01456 
-                                5.01456L5.014 14.985L14.9852 14.9852L14.985 5.014L5.01456 5.01456Z
-                        </Path.Data>
-                    </Path>
-                </Button.Content>
-            </Button>
+            <Grid.RowDefinitions>
+                <RowDefinition Height="auto"></RowDefinition>
+                <RowDefinition Height="auto"></RowDefinition>
+            </Grid.RowDefinitions>
+            <TextBlock VerticalAlignment="Center" FontSize="14" Foreground="#43474D">Tool</TextBlock>
+
+            <Border  Grid.Row="1" BorderThickness="1" BorderBrush="#E1E3E5"  Margin="0,14,0,0" Width="120" HorizontalAlignment="Left">
+                <StackPanel Orientation="Horizontal">
+                    <!--图片替换-->
+                    <Button Width="40" Height="25" BorderThickness="0" Click="ImageReplaceBtn_Click" Background="White" Style="{StaticResource LightButtonStyle}">
+                        <Button.Content>
+                            <Path Fill="#43474D">
+                                <Path.Data>
+                                    M1.12988 1.88037H0.379883V2.63037V14.3971V15.1471H1.12988H4.47057V16.2589V17.7589H5.97057H11.9871V16.915L11.9995 16L8.64639 
+                                14.3971L5.97057 15.9838V7.49225H18.0035V12.7161H19.5035V7.49225V5.99225H18.0035H16.9129V2.63037V1.88037H16.1629H1.12988ZM15.4129 
+                                5.99225V3.38037H1.87988V13.6471H4.47057V7.49225V5.99225H5.97057H15.4129ZM14.6574 10.5265C15.2097 10.5265 15.6574 10.0759 15.6574 
+                                9.5201C15.6574 8.9643 15.2097 8.51373 14.6574 8.51373C14.1051 8.51373 13.6574 8.9643 13.6574 9.5201C13.6574 10.0759 14.1051 10.5265 
+                                14.6574 10.5265ZM15.3635 12.4771L14.8863 11.8985L16.0436 10.9442L16.5208 11.5229L17.9828 13.2959L18.9947 
+                                14.5231H17.4042H12.9994H12.2494V13.0231H12.9994H15.8136L15.3635 12.4771ZM15.8007 17.2959L16.2779 17.8746L15.1206 18.8289L14.6434 
+                                18.2502L13.1814 16.4771L12.1695 15.25H13.76H18.1648H18.9148V16.75H18.1648H15.3506L15.8007 17.2959Z
+                                </Path.Data>
+                            </Path>
+                        </Button.Content>
+                    </Button>
+
+                    <!--图片导出-->
+                    <Button Grid.Column="1" Width="40" Height="25" BorderThickness="0" Click="ImageExportBtn_Click" Background="White" Style="{StaticResource LightButtonStyle}">
+                        <Button.Content>
+                            <Path Fill="#43474D">
+                                <Path.Data>
+                                    M12.3597 7.35973L8.75 10.9694L8.75 1V0.25H7.25V1L7.25 10.9694L3.6403 7.35973L3.10997 6.8294L2.04931 7.89006L2.57964 8.42039L7.46967 
+                                    13.3104C7.76256 13.6033 8.23744 13.6033 8.53033 13.3104L13.4204 8.42039L13.9507 7.89006L12.89 6.8294L12.3597 7.35973ZM1 
+                                    15.1538H0.25V16.6538H1H15.3077H16.0577V15.1538H15.3077H1Z
+                                </Path.Data>
+                            </Path>
+                        </Button.Content>
+                    </Button>
+
+                    <!--图片裁剪-->
+                    <Button Grid.Column="1" Width="40" Height="25" BorderThickness="0" Click="ImageClipBtn_Click" Background="White" Style="{StaticResource LightButtonStyle}">
+                        <Button.Content>
+                            <Path Fill="#43474D">
+                                <Path.Data>
+                                    M4.75 15.75V4.25H14.4074L13.9517 4.73826L15.0483 5.76174L15.25 5.54562V15.75H4.75ZM3.25 
+                                16.5V4.25H0V2.75H3.25V0.5H4.75V2.75H16H16.75V3.5V15.75H20V17.25H16.75V19.5H15.25V17.25H4H3.25V16.5ZM17.8483 2.76174L18.5483 
+                                2.01174L17.4517 0.988261L16.7517 1.73826L17.8483 2.76174ZM12.2483 8.76174L13.6483 7.26174L12.5517 6.23826L11.1517 7.73826L12.2483 
+                                8.76174ZM9.44829 11.7617L10.8483 10.2617L9.75171 9.23826L8.35171 10.7383L9.44829 11.7617ZM6.64829 14.7617L8.04829 13.2617L6.95171 
+                                12.2383L5.55171 13.7383L6.64829 14.7617Z
+                                </Path.Data>
+                            </Path>
+                        </Button.Content>
+                    </Button>
+                </StackPanel>
+            </Border>
+          
         </Grid>
+     
     </Grid>
 </UserControl>

+ 19 - 6
compdfkit_demo_windows/compdfkit/compdfkit-tools/Edit/PDFImageEdit/PDFImageEditControl/PDFImageEditControl.xaml.cs

@@ -44,8 +44,8 @@ namespace compdfkit_tools.Edit
         {
             if (newEvent != null && newEvent.EditType == CPDFEditType.EditImage)
             {
-                ImageOpacitySlider.Value = newEvent.Transparency / 255D;
-                ImageOpacityBox.Text = string.Format("{0}%", (int)(Math.Ceiling(ImageOpacitySlider.Value * 100)));
+                ImasgeOpacitySlider.Value = newEvent.Transparency / 255D;
+                OpacityTextBox.Text = string.Format("{0}%", (int)(Math.Ceiling(ImasgeOpacitySlider.Value * 100)));
                 if(PDFView!=null)
                 {
                     try
@@ -130,7 +130,7 @@ namespace compdfkit_tools.Edit
             }
             if (EditEvent != null)
             {
-                EditEvent.Transparency = (int)(ImageOpacitySlider.Value * 255);
+                EditEvent.Transparency = (int)(ImasgeOpacitySlider.Value * 255);
                 EditEvent.UpdatePDFEditByEventArgs();
             }
         }
@@ -138,9 +138,9 @@ namespace compdfkit_tools.Edit
         private void SliderOpacity_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
         {
             Slider slider = sender as Slider;
-            if(ImageOpacityBox!=null)
+            if(OpacityTextBox != null)
             {
-                ImageOpacityBox.Text = string.Format("{0}%", (int)(ImageOpacitySlider.Value * 100));
+                OpacityTextBox.Text = string.Format("{0}%", (int)(ImasgeOpacitySlider.Value * 100));
             }
           
             if (slider != null && slider.Tag != null && slider.Tag.ToString() == "false")
@@ -150,7 +150,7 @@ namespace compdfkit_tools.Edit
 
             if (EditEvent != null)
             {
-                EditEvent.Transparency = (int)(ImageOpacitySlider.Value * 255);
+                EditEvent.Transparency = (int)(ImasgeOpacitySlider.Value * 255);
                 EditEvent.UpdatePDFEditByEventArgs();
             }
         }
@@ -212,5 +212,18 @@ namespace compdfkit_tools.Edit
                 EditEvent.UpdatePDFEditByEventArgs();
             }
         }
+
+        private void OpacityComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
+        {
+            ComboBoxItem selectItem = OpacityComboBox.SelectedItem as ComboBoxItem;
+            if (selectItem != null && selectItem.Content != null)
+            {
+                if (double.TryParse(selectItem.Content.ToString().TrimEnd('%'), out double newOpacity))
+                {
+                    OpacityTextBox.Text = selectItem.Content.ToString();
+                    ImasgeOpacitySlider.Value = newOpacity / 100.0;
+                }
+            }
+        }
     }
 }

+ 27 - 9
compdfkit_demo_windows/compdfkit/compdfkit-tools/Edit/PDFImageEdit/PDFImageUI/CPDFImageFlipUI.xaml

@@ -6,19 +6,37 @@
              xmlns:local="clr-namespace:compdfkit_tools.Edit"
              mc:Ignorable="d" 
              d:DesignHeight="150" d:DesignWidth="300">
+    <UserControl.Resources>
+        <ResourceDictionary>
+            <ResourceDictionary.MergedDictionaries>
+                <ResourceDictionary Source="pack://application:,,,/compdfkit-assets;component/Styles/ButtonStyle.xaml"></ResourceDictionary>
+            </ResourceDictionary.MergedDictionaries>
+        </ResourceDictionary>
+    </UserControl.Resources>
+    
     <StackPanel Name="ImageFlipUI">
         <Grid>
-            <TextBlock VerticalAlignment="Center"  Margin="0,10,10,0">变换形状:</TextBlock>
+            <TextBlock VerticalAlignment="Center"  Margin="0,10,10,0" FontSize="14" Foreground="#43474D">Flip</TextBlock>
         </Grid>
 
-        <Grid Margin="0,10,0,0">
-            <Grid.ColumnDefinitions>
-                <ColumnDefinition Width="*"></ColumnDefinition>
-                <ColumnDefinition Width="*"></ColumnDefinition>
-            </Grid.ColumnDefinitions>
-            <Button Margin="0,0,10,0" Padding="0,5,0,5" BorderThickness="0" Click="FlipHorizontal_Click">水平镜像</Button>
-            <Button Grid.Column="1" Margin="10,0,0,0" Padding="0,5,0,5" BorderThickness="0" Click="FlipVertical_Click">垂直镜像</Button>
-        </Grid>
+        <StackPanel Margin="0,14,0,0" Orientation="Horizontal">
+            <Button Padding="0,5,0,5" Width="50" BorderThickness="1" Click="FlipHorizontal_Click" Style="{StaticResource LightButtonStyle}" Background="White" BorderBrush="#1A000000">
+                <Button.Content>
+                    <Path Fill="#43474D">
+                        <Path.Data>
+                            M7.52941 13.5H0L7.52941 0.5V13.5ZM9.47059 12.5H14.2652L9.47059 4.2218V12.5ZM16 13.5H14.8444H9.47059H8.47059V12.5V2.49524V0.5L9.47059 2.22656L15.4208 12.5L16 13.5Z
+                        </Path.Data>
+                    </Path>
+                </Button.Content>
+            </Button>
+            <Button  Padding="0,5,0,5" Width="50" BorderThickness="1" Click="FlipVertical_Click" Style="{StaticResource LightButtonStyle}" Background="White" BorderBrush="#1A000000">
+                <Path Fill="#43474D">
+                    <Path.Data>
+                        M15.5 7.5H13.1353H1.5H0.5V6.5V1.60353V0.5L1.5 0.966667L13.3571 6.5L15.5 7.5ZM10.9924 6.5H1.5V2.0702L10.9924 6.5ZM15.5 8.5H0.5V15.5L15.5 8.5Z
+                    </Path.Data>
+                </Path>
+            </Button>
+        </StackPanel>
     </StackPanel>
     
 </UserControl>

+ 36 - 4
compdfkit_demo_windows/compdfkit/compdfkit-tools/Edit/PDFImageEdit/PDFImageUI/CPDFImageRotateUI.xaml

@@ -6,18 +6,50 @@
              xmlns:local="clr-namespace:compdfkit_tools.Edit"
              mc:Ignorable="d" 
              d:DesignHeight="150" d:DesignWidth="300">
+    <UserControl.Resources>
+        <ResourceDictionary>
+            <ResourceDictionary.MergedDictionaries>
+                <ResourceDictionary Source="pack://application:,,,/compdfkit-assets;component/Styles/ButtonStyle.xaml"></ResourceDictionary>
+            </ResourceDictionary.MergedDictionaries>
+        </ResourceDictionary>
+    </UserControl.Resources>
+    
     <StackPanel Name="ImageRotateUI">
         <Grid>
-            <TextBlock VerticalAlignment="Center"  Margin="0,10,10,0">旋转:</TextBlock>
+            <TextBlock VerticalAlignment="Center"  Margin="0,10,10,0" FontSize="14" Foreground="#43474D">Rotate</TextBlock>
         </Grid>
 
-        <Grid Margin="0,10,0,0">
+        <Grid Margin="0,14,0,0">
             <Grid.ColumnDefinitions>
                 <ColumnDefinition Width="*"></ColumnDefinition>
                 <ColumnDefinition Width="*"></ColumnDefinition>
             </Grid.ColumnDefinitions>
-            <Button Margin="0,0,10,0" Padding="0,5,0,5" BorderThickness="0" Click="RotateLeftBtn_Click">左旋转</Button>
-            <Button Grid.Column="1" Margin="10,0,0,0" Padding="0,5,0,5" BorderThickness="0" Click="RotateRightBtn_Click">右旋转</Button>
+            <Button Style="{StaticResource LightButtonStyle}" Background="White" BorderBrush="#1A000000" Margin="0,0,10,0" Padding="0,5,0,5" BorderThickness="1" Click="RotateLeftBtn_Click">
+                <StackPanel Orientation="Horizontal">
+                    <Path Fill="#43474D">
+                        <Path.Data>
+                            M6.14645 2.2678L5.79289 2.62136L6.14645 2.97491L8.26777 5.09623L8.97487 4.38912L7.63584 3.05009L7.94232 3.07352C10.8082 3.5253 13 6.00716 
+                            13 9.00002C13 12.3137 10.3137 15 7 15C3.68629 15 1 12.3137 1 9.00002C1 7.015 1.96344 5.25508 3.45037 4.16211L2.85811 3.35637C1.12586 
+                            4.62966 0 6.6834 0 9.00002C0 12.866 3.13401 16 7 16C10.866 16 14 12.866 14 9.00002C14 5.49979 11.4314 2.6004 8.0763 2.08232C7.97978 
+                            2.06742 7.88263 2.05449 7.78489 2.04358L8.97487 0.853591L8.26777 0.146484L6.14645 2.2678Z
+                        </Path.Data>
+                    </Path>
+                    <TextBlock FontSize="14" Foreground="#43474D" Margin="8,0,0,0">Left</TextBlock>
+                </StackPanel>
+            </Button>
+            <Button Style="{StaticResource LightButtonStyle}" Background="White" BorderBrush="#1A000000" Grid.Column="1" Margin="10,0,0,0" Padding="0,5,0,5" BorderThickness="1" Click="RotateRightBtn_Click">
+                <StackPanel Orientation="Horizontal">
+                    <Path Fill="#43474D">
+                        <Path.Data>
+                            M8.35355 2.2678L8.70711 2.62136L8.35355 2.97491L6.23223 5.09623L5.52513 4.38912L6.86416 3.05009L6.55768 3.07352C3.69176 3.5253 1.5 6.00716 1.5 
+                            9.00002C1.5 12.3137 4.18629 15 7.5 15C10.8137 15 13.5 12.3137 13.5 9.00002C13.5 7.015 12.5366 5.25508 11.0496 4.16211L11.6419 3.35637C13.3741 
+                            4.62966 14.5 6.6834 14.5 9.00002C14.5 12.866 11.366 16 7.5 16C3.63401 16 0.5 12.866 0.5 9.00002C0.5 5.49979 3.06855 2.6004 6.4237 2.08232C6.52022 
+                            2.06742 6.61737 2.05449 6.71511 2.04358L5.52513 0.853591L6.23223 0.146484L8.35355 2.2678Z
+                        </Path.Data>
+                    </Path>
+                    <TextBlock FontSize="14" Foreground="#43474D" Margin="8,0,0,0">Right</TextBlock>
+                </StackPanel>
+            </Button>
         </Grid>
     </StackPanel>
 </UserControl>

+ 35 - 42
compdfkit_demo_windows/compdfkit/compdfkit-tools/Edit/PDFTextEdit/PDFTextEditControl/PDFTextEditControl.xaml

@@ -7,6 +7,13 @@
              xmlns:common="clr-namespace:compdfkit_tools.Common"
              mc:Ignorable="d" 
              d:DesignHeight="450" d:DesignWidth="800" Width="260" Padding="16,0,16,0"  Background="#FAFCFF">
+    <UserControl.Resources>
+        <ResourceDictionary>
+            <ResourceDictionary.MergedDictionaries>
+                <ResourceDictionary Source="pack://application:,,,/compdfkit-assets;component/Styles/SliderStyle.xaml"></ResourceDictionary>
+            </ResourceDictionary.MergedDictionaries>
+        </ResourceDictionary>
+    </UserControl.Resources>
     <Grid>
         <Grid.RowDefinitions>
             <RowDefinition Height="auto"></RowDefinition>
@@ -26,60 +33,24 @@
                 <RowDefinition Height="auto"></RowDefinition>
                 <RowDefinition Height="auto"></RowDefinition>
             </Grid.RowDefinitions>
-            
-            <TextBlock FontSize="16" Margin="0,20,0,0">字体颜色:</TextBlock>
-
-            <common:ColorPickerControl x:Name="FontColorUI" Grid.Row="1" Margin="0,20,0,0"></common:ColorPickerControl>
-
-            <local:CPDFTextStyleUI x:Name="TextStyleUI" Grid.Row="2" FontSize="16" Margin="0,20,0,0" Orientation="Horizontal"></local:CPDFTextStyleUI>
 
-            <local:CPDFTextAlignUI x:Name="TextAlignUI" Grid.Row="3" FontSize="16" Margin="0,20,0,0" Orientation="Horizontal"></local:CPDFTextAlignUI>
+            <TextBlock Margin="0,20,0,0" Foreground="#0E1114" FontSize="14">Text Color:</TextBlock>
 
-            <Grid Grid.Row="4" Margin="0,20,0,0">
-                <Grid.ColumnDefinitions>
-                    <ColumnDefinition Width="*"></ColumnDefinition>
-                    <ColumnDefinition Width="*"></ColumnDefinition>
-                </Grid.ColumnDefinitions>
-                <Grid.RowDefinitions>
-                    <RowDefinition Height="auto"></RowDefinition>
-                    <RowDefinition Height="auto"></RowDefinition>
-                </Grid.RowDefinitions>
-                <TextBlock FontSize="16">字号:</TextBlock>
-                <TextBox Grid.Column="1" BorderThickness="0,0,0,1" Width="50" HorizontalContentAlignment="Center" 
-                     Text="{Binding ElementName=FontSizeSlider,Path=Value,StringFormat=N0}" IsReadOnly="True"></TextBox>
-
-                <Slider Grid.Row="1" Grid.ColumnSpan="2"
-                    Name="FontSizeSlider" 
-                    Value="14"  
-                    IsSelectionRangeEnabled="True" 
-                    IsMoveToPointEnabled="True" 
-                    Margin="2,20,2,0"  
-                    Maximum="72" 
-                    Minimum="5" 
-                    TickFrequency="1" 
-                    IsSnapToTickEnabled="True" 
-                    Thumb.DragCompleted="Slider_DragCompleted"
-                    Thumb.DragStarted="Slider_DragStarted"
-                    ValueChanged="Slider_ValueChanged"
-                    Tag="true"
-                    />
-
-            </Grid>
+            <common:ColorPickerControl x:Name="FontColorUI" Grid.Row="1" Margin="0,20,0,0"></common:ColorPickerControl>
 
-            <Grid Grid.Row="5" Margin="0,20,0,0">
+            <Grid Grid.Row="2" Margin="0,20,0,0" Visibility="Visible">
                 <Grid.ColumnDefinitions>
                     <ColumnDefinition Width="*"></ColumnDefinition>
-                    <ColumnDefinition Width="*"></ColumnDefinition>
+                    <ColumnDefinition Width="auto"></ColumnDefinition>
                 </Grid.ColumnDefinitions>
                 <Grid.RowDefinitions>
                     <RowDefinition Height="auto"></RowDefinition>
                     <RowDefinition Height="auto"></RowDefinition>
                 </Grid.RowDefinitions>
 
-                <TextBlock FontSize="16">透明度:</TextBlock>
-                <TextBox Name="TextOpacityBox" Grid.Column="1" BorderThickness="0,0,0,1" Width="50" HorizontalContentAlignment="Center" IsReadOnly="True"></TextBox>
+                <TextBlock FontSize="14" Foreground="#43474D">Opacity:</TextBlock>
 
-                <Slider Grid.Row="1" Grid.ColumnSpan="2"
+                <Slider Style="{StaticResource SliderStyle}" Grid.Row="1" Width="148" Height="28"
                     Name="FontOpacitySlider" 
                     Value="14"  
                     IsSelectionRangeEnabled="True" 
@@ -94,7 +65,29 @@
                     ValueChanged="SliderOpacity_ValueChanged"
                     Tag="true"
                     />
+
+                <Grid Grid.Row="1" Grid.Column="1" Margin="0,10,0,0">
+                    <ComboBox Name="OpacityComboBox" VerticalContentAlignment="Center" Width="72" Height="28" Foreground="#43474D" FontSize="14"
+                              SelectionChanged="OpacityComboBox_SelectionChanged" BorderBrush="#1E000000">
+                        <ComboBoxItem>25%</ComboBoxItem>
+                        <ComboBoxItem>50%</ComboBoxItem>
+                        <ComboBoxItem>75%</ComboBoxItem>
+                        <ComboBoxItem>100%</ComboBoxItem>
+                    </ComboBox>
+                    <TextBox Name="OpacityTextBox" IsHitTestVisible="False" Width="72" Height="30" VerticalContentAlignment="Center" HorizontalContentAlignment="Center"
+                             IsReadOnly="True" Background="White" Padding="0,0,15,0" FontSize="14">100%</TextBox>
+                    <Path Fill="#43474D" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,5,0" IsHitTestVisible="False">
+                        <Path.Data>
+                            M0.5 0.510248L4.5041 5.5L8.5 0.5L0.5 0.510248Z
+                        </Path.Data>
+                    </Path>
+                </Grid>
             </Grid>
+
+            <local:CPDFTextStyleUI x:Name="TextStyleUI" Grid.Row="3" FontSize="16" Margin="0,20,0,0"></local:CPDFTextStyleUI>
+
+            <local:CPDFTextAlignUI x:Name="TextAlignUI" Grid.Row="4" FontSize="16" Margin="0,20,0,0"></local:CPDFTextAlignUI>
+            
         </Grid>
 
     </Grid>

+ 31 - 3
compdfkit_demo_windows/compdfkit/compdfkit-tools/Edit/PDFTextEdit/PDFTextEditControl/PDFTextEditControl.xaml.cs

@@ -1,5 +1,6 @@
 using ComPDFKit.PDFPage;
 using ComPDFKit.PDFPage.Edit;
+using compdfkit_tools.PDFControl;
 using ComPDFKitViewer;
 using ComPDFKitViewer.PdfViewer;
 using System;
@@ -46,8 +47,8 @@ namespace compdfkit_tools.Edit
 
                 TextStyleUI.SetFontNames(newEvent.SystemFontNameList);
                 TextStyleUI.SelectFontName(newEvent.FontName);
-                TextStyleUI.SetFontBold(newEvent.IsBold);
-                TextStyleUI.SetFontItalic(newEvent.IsItalic);
+                TextStyleUI.SetFontStyle(newEvent.IsBold,newEvent.IsItalic);
+                TextStyleUI.SetFontSize(newEvent.FontSize);
                 TextAlignUI.SetFontAlign(newEvent.TextAlign);
             }
             EditEvent = newEvent;
@@ -84,7 +85,11 @@ namespace compdfkit_tools.Edit
         private void SliderOpacity_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
         {
             Slider slider = sender as Slider;
-            TextOpacityBox.Text = string.Format("{0}%", (int)(FontOpacitySlider.Value * 100));
+            if(OpacityTextBox!=null && FontOpacitySlider!=null)
+            {
+                OpacityTextBox.Text = string.Format("{0}%", (int)(FontOpacitySlider.Value * 100));
+            }
+          
             if (slider != null && slider.Tag != null && slider.Tag.ToString() == "false")
             {
                 return;
@@ -126,10 +131,20 @@ namespace compdfkit_tools.Edit
             TextStyleUI.TextFontChanged += TextStyleUI_TextFontChanged;
             TextStyleUI.TextBoldChanged += TextStyleUI_TextBoldChanged;
             TextStyleUI.TextItalicChanged += TextStyleUI_TextItalicChanged;
+            TextStyleUI.TextSizeChanged += TextStyleUI_TextSizeChanged;
             TextAlignUI.TextAlignChanged += TextAlignUI_TextAlignChanged;
             FontColorUI.ColorChanged += FontColorUI_ColorChanged;
         }
 
+        private void TextStyleUI_TextSizeChanged(object sender, double e)
+        {
+            if (EditEvent != null)
+            {
+                EditEvent.FontSize = e;
+                EditEvent.UpdatePDFEditByEventArgs();
+            }
+        }
+
         private void FontColorUI_ColorChanged(object sender, EventArgs e)
         {
             if (EditEvent != null)
@@ -178,5 +193,18 @@ namespace compdfkit_tools.Edit
                 EditEvent.UpdatePDFEditByEventArgs();
             }
         }
+
+        private void OpacityComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
+        {
+            ComboBoxItem selectItem = OpacityComboBox.SelectedItem as ComboBoxItem;
+            if (selectItem != null && selectItem.Content != null)
+            {
+                if (double.TryParse(selectItem.Content.ToString().TrimEnd('%'), out double newOpacity))
+                {
+                    OpacityTextBox.Text = selectItem.Content.ToString();
+                    FontOpacitySlider.Value = newOpacity/100.0;
+                }
+            }
+        }
     }
 }

+ 20 - 17
compdfkit_demo_windows/compdfkit/compdfkit-tools/Edit/PDFTextEdit/PDFTextEditUI/CPDFTextAlignUI.xaml

@@ -6,16 +6,19 @@
              xmlns:local="clr-namespace:compdfkit_tools.Edit"
              mc:Ignorable="d" 
              d:DesignHeight="450" d:DesignWidth="800">
+    <UserControl.Resources>
+        <ResourceDictionary>
+            <ResourceDictionary.MergedDictionaries>
+                <ResourceDictionary Source="pack://application:,,,/compdfkit-assets;component/Styles/ToggleButtonStyle.xaml"></ResourceDictionary>
+                <ResourceDictionary Source="pack://application:,,,/compdfkit-assets;component/Styles/ButtonStyle.xaml"></ResourceDictionary>
+            </ResourceDictionary.MergedDictionaries>
+        </ResourceDictionary>
+    </UserControl.Resources>
     <StackPanel Name="TextAlignUI">
 
-        <Grid>
-            <TextBlock VerticalAlignment="Center"  Margin="0,10,10,0">对齐方式:</TextBlock>
-        </Grid>
-        
         <StackPanel Name="AlignPanel" Orientation="Horizontal">
-
-            <Button Width="30" BorderThickness="0" Padding="0,5,0,5" Tag="AlignLeft" Click="TextAlignBtn_Click">
-                <Button.Content>
+            <ToggleButton Name="AlignLeftBtn" Width="30" BorderThickness="0" Padding="0,5,0,5" Tag="AlignLeft" Style="{StaticResource ToggleButtonStyle}" Click="TextAlignBtn_Click">
+                <ToggleButton.Content>
                     <Path Name="AlignLeftPath" Fill="Gray">
                         <Path.Data>
                             M11.25 3.25C11.6642 3.25 12 3.58579 12 4C12 4.41421 11.6642 4.75 11.25 4.75H2.75C2.33579 4.75 2 4.41421 2 4C2 3.58579 2.33579 3.25 2.75 
@@ -25,11 +28,11 @@
                                 17.25 16.75H2.75C2.33579 16.75 2 16.4142 2 16C2 15.5858 2.33579 15.25 2.75 15.25H17.25Z
                         </Path.Data>
                     </Path>
-                </Button.Content>
-            </Button>
+                </ToggleButton.Content>
+            </ToggleButton>
 
-            <Button Width="30" Margin="10,0,0,0" BorderThickness="0" Padding="0,5,0,5" Tag="AlignCenter" Click="TextAlignBtn_Click">
-                <Button.Content>
+            <ToggleButton Name="AlignCenterBtn" Width="30" Margin="10,0,0,0" BorderThickness="0" Padding="0,5,0,5" Tag="AlignCenter" Style="{StaticResource ToggleButtonStyle}" Click="TextAlignBtn_Click">
+                <ToggleButton.Content>
                     <Path Name="AlignCenterPath" Fill="Gray">
                         <Path.Data>
                             M5 4C5 3.58579 5.33579 3.25 5.75 3.25H14.25C14.6642 3.25 15 3.58579 15 4C15 4.41421 14.6642 4.75 14.25 4.75H5.75C5.33579 4.75 5 
@@ -39,11 +42,11 @@
                                     12.75 5.75 12.75H14.25C14.6642 12.75 15 12.4142 15 12C15 11.5858 14.6642 11.25 14.25 11.25H5.75Z
                         </Path.Data>
                     </Path>
-                </Button.Content>
-            </Button>
+                </ToggleButton.Content>
+            </ToggleButton>
 
-            <Button Width="30" Margin="10,0,0,0" BorderThickness="0" Padding="0,5,0,5" Tag="AlignRight" Click="TextAlignBtn_Click">
-                <Button.Content>
+            <ToggleButton Name="AlignRightBtn" Width="30" Margin="10,0,0,0" BorderThickness="0" Padding="0,5,0,5" Tag="AlignRight" Style="{StaticResource ToggleButtonStyle}" Click="TextAlignBtn_Click">
+                <ToggleButton.Content>
                     <Path Name="AlignRightPath" Fill="Gray">
                         <Path.Data>
                             M8.75 3.25C8.33579 3.25 8 3.58579 8 4C8 4.41421 8.33579 4.75 8.75 4.75H17.25C17.6642 4.75 18 4.41421 18 4C18 3.58579 
@@ -53,8 +56,8 @@
                                     12C8 12.4142 8.33579 12.75 8.75 12.75H17.25C17.6642 12.75 18 12.4142 18 12C18 11.5858 17.6642 11.25 17.25 11.25H8.75Z
                         </Path.Data>
                     </Path>
-                </Button.Content>
-            </Button>
+                </ToggleButton.Content>
+            </ToggleButton>
             
         </StackPanel>
         

+ 11 - 2
compdfkit_demo_windows/compdfkit/compdfkit-tools/Edit/PDFTextEdit/PDFTextEditUI/CPDFTextAlignUI.xaml.cs

@@ -7,6 +7,7 @@ using System.Text;
 using System.Threading.Tasks;
 using System.Windows;
 using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
 using System.Windows.Data;
 using System.Windows.Documents;
 using System.Windows.Input;
@@ -49,12 +50,15 @@ namespace compdfkit_tools.Edit
             switch (newAlign)
             {
                 case TextAlignType.AlignLeft:
+                    AlignLeftBtn.IsChecked = true;
                     AlignLeftPath.Fill = Brushes.Blue;
                     break;
                 case TextAlignType.AlignMiddle:
+                    AlignCenterBtn.IsChecked = true; 
                     AlignCenterPath.Fill = Brushes.Blue;
                     break;
                 case TextAlignType.AlignRight:
+                    AlignRightBtn.IsChecked = true;
                     AlignRightPath.Fill = Brushes.Blue;
                     break;
                 default:
@@ -68,19 +72,24 @@ namespace compdfkit_tools.Edit
             AlignLeftPath.Fill = Brushes.Gray;
             AlignCenterPath.Fill= Brushes.Gray;
             AlignRightPath.Fill= Brushes.Gray;
+            AlignLeftBtn.IsChecked = false;
+            AlignCenterBtn.IsChecked = false;
+            AlignRightBtn.IsChecked= false; 
         }
 
         private void TextAlignBtn_Click(object sender, RoutedEventArgs e)
         {
-            Button clickBtn = sender as Button;
+            ClearAlign();
+            ToggleButton clickBtn = sender as ToggleButton;
             if (clickBtn != null && clickBtn.Tag!=null)
             {
+                clickBtn.IsChecked = true;
                 TextAlignType newAlign = Alignment;
 
                 switch(clickBtn.Tag.ToString())
                 {
                     case "AlignLeft":
-                        newAlign= TextAlignType.AlignLeft;
+                        newAlign = TextAlignType.AlignLeft;
                         break;
                     case "AlignCenter":
                         newAlign = TextAlignType.AlignMiddle;

+ 61 - 14
compdfkit_demo_windows/compdfkit/compdfkit-tools/Edit/PDFTextEdit/PDFTextEditUI/CPDFTextStyleUI.xaml

@@ -6,23 +6,70 @@
              xmlns:local="clr-namespace:compdfkit_tools.Edit"
              mc:Ignorable="d" 
              d:DesignHeight="450" d:DesignWidth="800">
-    <StackPanel Name="TextStyleUI">
-        
-        <Grid>
-            <TextBlock VerticalAlignment="Center" Margin="0,10,10,0">字体样式:</TextBlock>
-        </Grid>
+    <Grid>
+        <Grid.RowDefinitions>
+            <RowDefinition Height="auto"></RowDefinition>
+            <RowDefinition Height="*"></RowDefinition>
+        </Grid.RowDefinitions>
+        <Border>
+            <TextBlock VerticalAlignment="Center" Margin="0,10,10,0" FontSize="14" Foreground="#43474D">Text:</TextBlock>
+        </Border>
       
-        <StackPanel Orientation="Horizontal" Margin="0,10,0,0">
-            <ComboBox Name="FontNameComboBox" Width="90" FontSize="14" SelectionChanged="FontNameComboBox_SelectionChanged">
+        <Grid Grid.Row="1" Margin="0,10,0,0">
+            <Grid.RowDefinitions>
+                <RowDefinition Height="auto"></RowDefinition>
+                <RowDefinition Height="auto"></RowDefinition>
+            </Grid.RowDefinitions>
+
+            <Grid.ColumnDefinitions>
+                <ColumnDefinition Width="auto"></ColumnDefinition>
+                <ColumnDefinition Width="*"></ColumnDefinition>
+            </Grid.ColumnDefinitions>
+            
+            <ComboBox Grid.ColumnSpan="2" Name="FontNameComboBox" Width="228" Height="28" FontSize="14" SelectionChanged="FontNameComboBox_SelectionChanged" BorderThickness="0"
+                      VerticalContentAlignment="Center" Foreground="#43474D">
                 <ComboBoxItem Content="Courier"></ComboBoxItem>
                 <ComboBoxItem Content="Helvetica"></ComboBoxItem>
                 <ComboBoxItem Content="Times"></ComboBoxItem>
             </ComboBox>
-            <ToggleButton Name="FontBoldBtn" FontSize="14" FontWeight="Bold" Width="40" Margin="10,0,10,0" BorderThickness="0" 
-                          Checked="FontBoldBtn_CheckChanged" Unchecked="FontBoldBtn_CheckChanged">B</ToggleButton>
-            <ToggleButton Name="FontItalicBtn" FontSize="14" FontWeight="Bold" Width="40" BorderThickness="0" FontStyle="Italic"
-                          Checked="FontItalicBtn_CheckChanged" Unchecked="FontItalicBtn_CheckChanged">U</ToggleButton>
-        </StackPanel>
-        
-    </StackPanel>
+
+            <ComboBox Name="FontStyleBox" Width="148" Height="28" Grid.Row="1" Margin="0,8,0,0" BorderThickness="0" Foreground="#43474D" FontSize="14" 
+                       SelectionChanged="FontStyleBox_SelectionChanged">
+                <ComboBoxItem IsSelected="True">Regular</ComboBoxItem>
+                <ComboBoxItem>Bold</ComboBoxItem>
+                <ComboBoxItem>Italic</ComboBoxItem>
+                <ComboBoxItem>Bold Italic</ComboBoxItem>
+            </ComboBox>
+
+            <Grid Grid.Row="1" Grid.Column="1" Margin="8,8,0,0">
+                <ComboBox Name="FontSizeComboBox" Width="72" Height="28" BorderThickness="0" MaxDropDownHeight="200" Foreground="#43474D" FontSize="14"
+                          SelectionChanged="FontSizeComboBox_SelectionChanged">
+                    <ComboBoxItem>6</ComboBoxItem>
+                    <ComboBoxItem>8</ComboBoxItem>
+                    <ComboBoxItem>9</ComboBoxItem>
+                    <ComboBoxItem>10</ComboBoxItem>
+                    <ComboBoxItem>12</ComboBoxItem>
+                    <ComboBoxItem>14</ComboBoxItem>
+                    <ComboBoxItem>18</ComboBoxItem>
+                    <ComboBoxItem>20</ComboBoxItem>
+                    <ComboBoxItem>22</ComboBoxItem>
+                    <ComboBoxItem>24</ComboBoxItem>
+                    <ComboBoxItem>26</ComboBoxItem>
+                    <ComboBoxItem>28</ComboBoxItem>
+                    <ComboBoxItem>32</ComboBoxItem>
+                    <ComboBoxItem>36</ComboBoxItem>
+                    <ComboBoxItem>48</ComboBoxItem>
+                    <ComboBoxItem>72</ComboBoxItem>
+                </ComboBox>
+                <TextBox Name="FontSizeTextBox" IsHitTestVisible="False" Width="72" Height="28" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0"
+                             IsReadOnly="True" Background="#ECECEC" Padding="0,0,15,0" FontSize="14"></TextBox>
+                <Path Fill="#43474D" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,5,0" IsHitTestVisible="False">
+                    <Path.Data>
+                        M0.5 0.510248L4.5041 5.5L8.5 0.5L0.5 0.510248Z
+                    </Path.Data>
+                </Path>
+            </Grid>
+
+        </Grid>
+    </Grid>
 </UserControl>

+ 71 - 20
compdfkit_demo_windows/compdfkit/compdfkit-tools/Edit/PDFTextEdit/PDFTextEditUI/CPDFTextStyleUI.xaml.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Runtime.CompilerServices;
 using System.Text;
 using System.Threading.Tasks;
 using System.Windows;
@@ -23,23 +24,12 @@ namespace compdfkit_tools.Edit
         public event EventHandler<string> TextFontChanged;
         public event EventHandler<bool> TextBoldChanged;
         public event EventHandler<bool> TextItalicChanged;
+        public event EventHandler<double> TextSizeChanged;
         public CPDFTextStyleUI()
         {
             InitializeComponent();
         }
 
-        public Orientation Orientation
-        {
-            get
-            {
-                return TextStyleUI.Orientation;
-            }
-            set
-            {
-                TextStyleUI.Orientation = value;
-            }
-        }
-
         public void SetFontNames(List<string> fontNames)
         {
             FontNameComboBox.Items?.Clear();
@@ -82,14 +72,46 @@ namespace compdfkit_tools.Edit
             }
         }
 
-        public void SetFontBold(bool isBold)
+        public void SetFontStyle(bool isBold,bool isItalic)
         {
-            FontBoldBtn.IsChecked = isBold;
+            if (isBold == false && isItalic == false)
+            {
+                FontStyleBox.SelectedIndex = 0;
+                return;
+            }
+
+            if (isBold && isItalic == false)
+            {
+                FontStyleBox.SelectedIndex = 1;
+                return;
+            }
+
+            if (isBold == false && isItalic)
+            {
+                FontStyleBox.SelectedIndex = 0;
+                return;
+            }
+
+            if (isBold  && isItalic )
+            {
+                FontStyleBox.SelectedIndex = 3;
+             
+            }
         }
 
-        public void SetFontItalic(bool isItalic) 
+        public void SetFontSize(double newFontSize)
         {
-            FontItalicBtn.IsChecked= isItalic;
+            if(FontSizeTextBox!=null)
+            {
+                if (newFontSize - (int)(newFontSize) > 0)
+                {
+                    FontSizeTextBox.Text = (newFontSize).ToString("F2");
+                }
+                else
+                {
+                    FontSizeTextBox.Text = ((int)(newFontSize)).ToString();
+                }
+            }
         }
 
         private void FontNameComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
@@ -107,14 +129,43 @@ namespace compdfkit_tools.Edit
             }
         }
 
-        private void FontBoldBtn_CheckChanged(object sender, RoutedEventArgs e)
+        private void FontStyleBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
         {
-            TextBoldChanged?.Invoke(this, FontBoldBtn.IsChecked==true);
+            int selectIndex = Math.Max(0, FontStyleBox.SelectedIndex);
+            switch(selectIndex)
+            {
+                case 0:
+                    TextBoldChanged?.Invoke(this,false);
+                    TextItalicChanged?.Invoke(this, false);
+                    break;
+                case 1:
+                    TextBoldChanged?.Invoke(this, true);
+                    TextItalicChanged?.Invoke(this, false);
+                    break;
+                case 2:
+                    TextBoldChanged?.Invoke(this, false);
+                    TextItalicChanged?.Invoke(this, true);
+                    break;
+                case 3:
+                    TextBoldChanged?.Invoke(this, true);
+                    TextItalicChanged?.Invoke(this, true);
+                    break;
+                default:
+                    break;
+            }
         }
 
-        private void FontItalicBtn_CheckChanged(object sender, RoutedEventArgs e)
+        private void FontSizeComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
         {
-            TextItalicChanged?.Invoke(this, FontItalicBtn.IsChecked == true);
+            ComboBoxItem selectItem = FontSizeComboBox.SelectedItem as ComboBoxItem;
+            if (selectItem != null && selectItem.Content != null)
+            {
+                if (int.TryParse(selectItem.Content.ToString(), out int newFontSize))
+                {
+                    FontSizeTextBox.Text = (newFontSize).ToString();
+                    TextSizeChanged?.Invoke(this, newFontSize);
+                }
+            }
         }
     }
 }

+ 1 - 0
compdfkit_demo_windows/compdfkit/compdfkit-tools/compdfkit-tools.csproj

@@ -308,6 +308,7 @@
     <Resource Include="Asset\Resource\Annotation\StampIcons\Witness.png" />
     <Resource Include="Asset\Resource\Annotation\Signature\Dropimage.png" />
     <Resource Include="Asset\Resource\Color_btn_ic.png" />
+    <Resource Include="Asset\Resource\Transparent_btn_ic.png" />
     <Content Include="VirtualizingWrapPanel.dll">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>

+ 62 - 18
compdfkit_demo_windows/compdfkit/edit-ctrl-demo/MainWindow.xaml

@@ -8,6 +8,14 @@
         xmlns:tools="clr-namespace:compdfkit_tools.PDFControl;assembly=com.compdfkit.tools"
         mc:Ignorable="d"
         Title="MainWindow" Height="700" Width="1200" WindowStartupLocation="CenterScreen">
+    <Window.Resources>
+        <ResourceDictionary>
+            <ResourceDictionary.MergedDictionaries>
+                <ResourceDictionary Source="pack://application:,,,/compdfkit-assets;component/Styles/ToggleButtonStyle.xaml"></ResourceDictionary>
+                <ResourceDictionary Source="pack://application:,,,/compdfkit-assets;component/Styles/ButtonStyle.xaml"></ResourceDictionary>
+            </ResourceDictionary.MergedDictionaries>
+        </ResourceDictionary>
+    </Window.Resources>
     <Grid>
         <Grid.RowDefinitions>
             <RowDefinition Height="auto"></RowDefinition>
@@ -27,25 +35,61 @@
             <ToggleButton Name="PDFEditBtn" Grid.Row="1" HorizontalAlignment="Center" Padding="10,3,10,3" BorderThickness="0" Click="PDFEditBtn_Click">
                 <TextBlock  FontSize="14" VerticalAlignment="Center">PDFEdit</TextBlock>
             </ToggleButton>
+
+            <Grid Grid.Row="2" Background="#F2F3F5">
+                <StackPanel  Orientation="Horizontal" HorizontalAlignment="Center">
+
+                    <!--文字编辑按钮-->
+                    <ToggleButton Style="{StaticResource ToggleButtonStyle}" Name="PDFTextEditButton" BorderThickness="0" Padding="10,5,10,5" Click="PDFTextEditButton_Click" Width="99" Height="40">
+                        <StackPanel Orientation="Horizontal">
+                            <Path Fill="#273C62" VerticalAlignment="Center">
+                                <Path.Data>
+                                    M1.25 0H0.5V0.75V13.25V14H1.25H17.75H18.5V13.25V7H17V12.5H2V1.5H12.5V0H1.25ZM11.5 5V2.5H3.5V5H5V4H6.75V10H6V11.5H9V10H8.25V4H10V5H11.5ZM15.75 
+                                3.75H13.5V2.25H15.75V0H17.25V2.25H19.5V3.75H17.25V6H15.75V3.75Z
+                                </Path.Data>
+                            </Path>
+                            <TextBlock  FontSize="12" VerticalAlignment="Center" Margin="8,0,0,0">Add Text</TextBlock>
+                        </StackPanel>
+                    </ToggleButton>
+
+                    <!--图片编辑按钮-->
+                    <ToggleButton Style="{StaticResource ToggleButtonStyle}" Name="PDFImageEditButton" BorderThickness="0" Padding="10,5,10,5" Margin="10,0,0,0" Click="PDFImageEditButton_Click">
+                        <StackPanel Orientation="Horizontal">
+                            <Path Fill="#273C62" VerticalAlignment="Center">
+                                <Path.Data>
+                                    M1.25 0H0.5V0.75V13.25V14H1.25H17.75H18.5V13.25V7H17V12.5H2V1.5H12.5V0H1.25ZM11.5 5V2.5H3.5V5H5V4H6.75V10H6V11.5H9V10H8.25V4H10V5H11.5ZM15.75 
+                                3.75H13.5V2.25H15.75V0H17.25V2.25H19.5V3.75H17.25V6H15.75V3.75Z
+                                </Path.Data>
+                            </Path>
+                            <TextBlock  FontSize="12" VerticalAlignment="Center" Margin="8,0,0,0">Add Picture</TextBlock>
+                        </StackPanel>
+                    </ToggleButton>
+
+                    <Line Height="40" Stroke="#D5D6D8" StrokeThickness="2" X1="0" Y1="10" X2="0" Y2="30" Margin="8,0,8,0" />
+
+                    <!--撤销-->
+                    <Button Style="{StaticResource LightButtonStyle}" BorderThickness="0"  Width="40" Height="40" IsEnabled="{Binding CanUndo,Mode=OneWay}" Click="UndoBtn_Click">
+                        <Path Fill="#43474D">
+                            <Path.Data>
+                                M1.03033 3.62131L0.5 4.15164L1.03033 4.68197L4.65164 8.30328L5.7123 7.24261L3.37132 4.90164H10.0607C11.5794 4.90164 12.8107 6.13285 12.8107 
+                                7.65164C12.8107 9.17042 11.5794 10.4016 10.0607 10.4016H2.56066V11.9016H10.0607C12.4079 11.9016 14.3107 9.99885 14.3107 7.65164C14.3107 
+                                5.30443 12.4079 3.40164 10.0607 3.40164H3.37132L5.7123 1.06066L4.65164 0L1.03033 3.62131Z
+                            </Path.Data>
+                        </Path>
+                    </Button>
+                    <!--重做-->
+                    <Button Style="{StaticResource LightButtonStyle}" BorderThickness="0" Width="40" Height="40" Margin="10,0,0,0"  IsEnabled="{Binding CanRedo,Mode=OneWay}" Click="RedoBtn_Click">
+                        <Path Fill="#43474D">
+                            <Path.Data>
+                                M13.7802 3.62131L14.3105 4.15164L13.7802 4.68197L10.1589 8.30328L9.09825 7.24261L11.4392 4.90164H4.74989C3.2311 4.90164 1.99989 6.13285 
+                                1.99989 7.65164C1.99989 9.17042 3.2311 10.4016 4.74989 10.4016H12.2499V11.9016H4.74989C2.40268 11.9016 0.499887 9.99885 0.499887 
+                                7.65164C0.499887 5.30443 2.40268 3.40164 4.74989 3.40164H11.4392L9.09825 1.06066L10.1589 0L13.7802 3.62131Z
+                            </Path.Data>
+                        </Path>
+                    </Button>
+                </StackPanel>
+            </Grid>
             
-            <StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,10,0,10">
-                <!--文字编辑按钮-->
-                <ToggleButton Name="PDFTextEditButton" BorderThickness="0" Padding="10,5,10,5" Click="PDFTextEditButton_Click">
-                    <TextBlock  FontSize="14" VerticalAlignment="Center">文字编辑</TextBlock>
-                </ToggleButton>
-                <!--图片编辑按钮-->
-                <ToggleButton Name="PDFImageEditButton" BorderThickness="0" Padding="10,5,10,5" Margin="10,0,0,0" Click="PDFImageEditButton_Click">
-                    <TextBlock FontSize="14" VerticalAlignment="Center">图片编辑</TextBlock>
-                </ToggleButton>
-                <!--撤销-->
-                <Button BorderThickness="0" Padding="10,5,10,5" Margin="10,0,0,0"  IsEnabled="{Binding CanUndo,Mode=OneWay}" Click="UndoBtn_Click">
-                    <TextBlock FontSize="14" VerticalAlignment="Center">撤销</TextBlock>
-                </Button>
-                <!--重做-->
-                <Button BorderThickness="0" Padding="10,5,10,5" Margin="10,0,0,0"  IsEnabled="{Binding CanRedo,Mode=OneWay}" Click="RedoBtn_Click">
-                    <TextBlock FontSize="14" VerticalAlignment="Center">重做</TextBlock>
-                </Button>
-            </StackPanel>
         </Grid>
 
         <!--中间内容部分-->

+ 7 - 1
compdfkit_demo_windows/compdfkit/edit-ctrl-demo/edit-ctrl-demo.csproj

@@ -110,7 +110,9 @@
   </ItemGroup>
   <ItemGroup>
     <Content Include="ComPDFKit.Desk.dll" />
-    <Content Include="ComPDFKit.Viewer.dll" />
+    <Content Include="ComPDFKit.Viewer.dll">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
     <Content Include="x64\ComPDFKit.dll">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
@@ -119,6 +121,10 @@
     </Content>
   </ItemGroup>
   <ItemGroup>
+    <ProjectReference Include="..\compdfkit-assets\compdfkit-assets.csproj">
+      <Project>{9b25b167-4896-40e3-a423-7a02cef3005e}</Project>
+      <Name>compdfkit-assets</Name>
+    </ProjectReference>
     <ProjectReference Include="..\compdfkit-tools\compdfkit-tools.csproj">
       <Project>{9363bcb1-3a67-446a-8093-5708b86bf418}</Project>
       <Name>compdfkit-tools</Name>