Explorar o código

属性面板 - 文本框、形状、文本高亮面板UI

chenrongqian %!s(int64=2) %!d(string=hai) anos
pai
achega
5ae715f882

+ 1 - 0
PDF Office/App.xaml

@@ -11,6 +11,7 @@
                 <ResourceDictionary Source="pack://application:,,,/PDF Office;component/Styles/ComboxStyle.xaml" />
                 <ResourceDictionary Source="pack://application:,,,/PDF Office;component/Styles/ListBoxStyle.xaml" />
                 <ResourceDictionary Source="pack://application:,,,/PDF Office;component/Styles/WindowsStyle.xaml" />
+                <ResourceDictionary Source="pack://application:,,,/PDF Office;component/Styles/ContainerStyles/ComboxStyle/ComboxItemStyle.xaml" />
                 <!--  Enable show customctrol's correctly UI in Xaml Designer  -->
                 <ResourceDictionary Source="pack://application:,,,/PDF Office;component/Themes/Generic.xaml" />
             </ResourceDictionary.MergedDictionaries>

+ 77 - 0
PDF Office/DataConvert/PropertyPanelVisible.cs

@@ -0,0 +1,77 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Data;
+using System.Windows.Media;
+
+namespace PDF_Office.DataConvert
+{
+
+
+    public class PropertyPanelVisible : IValueConverter
+    {
+        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            if(value is string)
+            {
+                var panelType = (string)value;
+                if(parameter.ToString() == panelType)
+                switch(panelType)
+                {
+                    case "HighLight":
+                        return Visibility.Visible;
+
+                    default:
+                        break;
+                }
+            }
+            return Visibility.Collapsed;
+
+        }
+
+        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            throw new NotImplementedException();
+
+        }
+    }
+
+    public class CheckToVisibleMutiConvert : IMultiValueConverter
+    {
+        public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
+        {
+            for (int i = 0; i < values.Length; i++)
+            {
+                if ((bool)values[i] == true)
+                    return Visibility.Collapsed;
+            }
+            return Visibility.Visible;
+        }
+
+        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
+        {
+            throw new NotImplementedException();
+        }
+    }
+
+    public class ColorToBrushConverter : IValueConverter
+    {
+        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            if (value is Color)
+            {
+                return new SolidColorBrush((Color)value);
+            }
+            return Brushes.Transparent;
+        }
+
+        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            throw new NotImplementedException();
+        }
+    }
+}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 217 - 2
PDF Office/Views/PropertyPanel/AnnotPanel/FreehandAnnotProperty.xaml


+ 310 - 2
PDF Office/Views/PropertyPanel/AnnotPanel/FreetextAnnotProperty.xaml

@@ -4,9 +4,317 @@
              xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
              xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
              xmlns:local="clr-namespace:PDF_Office.Views.PropertyPanel.AnnotPanel"
+             xmlns:Convert="clr-namespace:PDF_Office.DataConvert"
+             xmlns:cus="clr-namespace:PDF_Office.CustomControl"
              mc:Ignorable="d" 
              d:DesignHeight="450" d:DesignWidth="800">
-    <Grid>
-            
+    <UserControl.Resources>
+        <ResourceDictionary>
+            <ResourceDictionary.MergedDictionaries>
+                <ResourceDictionary Source="../../../Styles/SliderStyle.xaml"></ResourceDictionary>
+            </ResourceDictionary.MergedDictionaries>
+
+            <Convert:CheckToVisibleMutiConvert x:Key="CheckToVisibleMutiConvert"/>
+            <Style x:Key="line1Style" TargetType="{x:Type Line}">
+                <Setter Property="Visibility">
+                    <Setter.Value>
+                        <MultiBinding Converter="{StaticResource CheckToVisibleMutiConvert}">
+                            <Binding ElementName="TextAlignLeftBtn" Path="IsChecked"/>
+                            <Binding ElementName="TextAlignCenterBtn" Path="IsChecked"/>
+                        </MultiBinding>
+                    </Setter.Value>
+                </Setter>
+            </Style>
+            <Style x:Key="line2Style" TargetType="{x:Type Line}">
+                <Setter Property="Visibility">
+                    <Setter.Value>
+                        <MultiBinding Converter="{StaticResource CheckToVisibleMutiConvert}">
+                            <Binding ElementName="TextAlignCenterBtn" Path="IsChecked"/>
+                            <Binding ElementName="TextAlignRightBtn" Path="IsChecked"/>
+                        </MultiBinding>
+                    </Setter.Value>
+                </Setter>
+            </Style>
+        </ResourceDictionary>
+    </UserControl.Resources>
+    <Grid Background="Wheat">
+        <StackPanel>
+            <TextBlock Name="AnnotTypeTitle" FontFamily="Segoe UI Semibold" FontWeight="SemiBold" FontSize="18" LineHeight="24" HorizontalAlignment="Center" Margin="0,8,0,0">Freetext</TextBlock>
+            <Border Width="232" Height="80" BorderThickness="1" BorderBrush="#E2E3E6" Margin="0,8,0,0">
+                <Grid>
+                    <Border Name="FreeTextBorder" HorizontalAlignment="Center" VerticalAlignment="Center" Padding="5">
+                        <TextBlock Name="SampleText" Text="Sample" HorizontalAlignment="Center" VerticalAlignment="Center" FontWeight="SemiBold" FontFamily="Segoe UI Semibold" FontSize="24">
+                        </TextBlock>
+                    </Border>
+
+                    <Path Name="UnderlinePath" HorizontalAlignment="Center" StrokeThickness="2" Margin="0,51,0,0" Visibility="Collapsed">
+                        <Path.Data>
+                            <LineGeometry StartPoint="0,0" EndPoint="62,0"></LineGeometry>
+                        </Path.Data>
+                    </Path>
+                    <Path Name="StrikeoutPath" HorizontalAlignment="Center" StrokeThickness="2" Margin="0,40,0,0" Visibility="Collapsed">
+                        <Path.Data>
+                            <LineGeometry StartPoint="0,0" EndPoint="62,0"></LineGeometry>
+                        </Path.Data>
+                    </Path>
+                    <Path Name="SquigglyPath"  HorizontalAlignment="Center" StrokeThickness="2" Margin="0,51,0,0" Visibility="Collapsed">
+
+                    </Path>
+                </Grid>
+            </Border>
+
+            <TextBlock x:Name="FontText"  FontFamily="Segoe UI Semibold" FontWeight="SemiBold" FontSize="14" LineHeight="20" Margin="12,18,0,0" >Font</TextBlock>
+
+            <Grid Margin="0,6,0,0">
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="auto"></ColumnDefinition>
+                    <ColumnDefinition Width="auto"></ColumnDefinition>
+                </Grid.ColumnDefinitions>
+                <Grid.RowDefinitions>
+                    <RowDefinition Height="auto"></RowDefinition>
+                    <RowDefinition Height="auto"></RowDefinition>
+                    <RowDefinition Height="auto"></RowDefinition>
+                </Grid.RowDefinitions>
+
+                <Border BorderBrush="#E2E3E6"  Width="148" Height="32" Margin="12,0,4,0"  BorderThickness="0">
+                    <Grid>
+                        <ComboBox IsReadOnly="True" Name="FontFamilyBox" Background="Transparent" Padding="10 10 0 0"  BorderThickness="1" BorderBrush="#FFE2E3E6"
+                                >
+                            <ComboBox.ItemContainerStyle>
+                                <Style TargetType="{x:Type ComboBoxItem}">
+                                    <Setter Property="Padding" Value="10 0 0 0"/>
+                                </Style>
+                            </ComboBox.ItemContainerStyle>
+                            <ComboBoxItem Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <TextBlock Text="Courier New" FontFamily="Courier New" Tag="Courier"  FontSize="14"/>
+                            </ComboBoxItem>
+                            <ComboBoxItem Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <TextBlock Text="Arial" FontFamily="Arial" Tag="Helvetica" FontSize="14"/>
+                            </ComboBoxItem>
+                            <ComboBoxItem Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <TextBlock Text="Times New Roman" FontFamily="Times New Roman" Tag="Times Roman" FontSize="14"/>
+                            </ComboBoxItem>
+                        </ComboBox>
+
+                        <TextBox Name="FontFamilyText" FontFamily="Segoe UI" FontSize="14" Background="White"  Padding="10 0 0 0" Margin="2,0,25,0" IsReadOnly="True"
+                             BorderThickness="0" VerticalAlignment="Center" TextAlignment="Left">
+                        </TextBox>
+                    </Grid>
+                </Border>
+
+                <cus:ColorDropBox x:Name="FontColorBox" Grid.Column="1" BorderThickness="1" BorderBrush="#E2E3E6" Width="80" Height="32" HorizontalAlignment="Left"
+                                   ></cus:ColorDropBox>
+
+                <Border Grid.Row="1" BorderBrush="#E2E3E6"  Width="148" Height="32" Margin="12,8,4,0"  BorderThickness="0">
+                    <Grid>
+                        <ComboBox Name="FontStyleBox" IsReadOnly="True" BorderThickness="1" BorderBrush="#FFE2E3E6" Padding="10 10 0 0" Background="Transparent" >
+                            <ComboBox.ItemContainerStyle>
+                                <Style TargetType="{x:Type ComboBoxItem}">
+                                    <Setter Property="Padding" Value="10 0 0 0"/>
+                                </Style>
+                            </ComboBox.ItemContainerStyle>
+                            <ComboBoxItem x:Name="RegularItem" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">Regular</ComboBoxItem>
+                            <ComboBoxItem x:Name="BoldItem" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">Bold</ComboBoxItem>
+                            <ComboBoxItem x:Name="ItalicItem" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">Italic</ComboBoxItem>
+                            <ComboBoxItem x:Name="BoldItalicItem" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">Bold Italic</ComboBoxItem>
+                        </ComboBox>
+                        <TextBox Name="FontStyleText" IsReadOnly="True" FontFamily="Segoe UI" FontSize="14" Background="White" Padding="10 0 0 0" Height="20" Margin="2,0,35,0" 
+                             BorderThickness="0" VerticalAlignment="Center" TextAlignment="Left">
+                        </TextBox>
+                    </Grid>
+                </Border>
+
+                <Border Grid.Row="1" Grid.Column="1" BorderBrush="#E2E3E6"  Width="80" Height="32" Margin="-1,8,0,0"  BorderThickness="0">
+                    <Grid>
+                        <ComboBox Name="FontSizeBox" BorderThickness="1" Background="Transparent" BorderBrush="#FFE2E3E6"
+                                  MaxDropDownHeight="200">
+                            <ComboBox.ItemContainerStyle>
+                                <Style TargetType="{x:Type ComboBoxItem}">
+                                    <Setter Property="Padding" Value="10 0 0 0"/>
+                                </Style>
+                            </ComboBox.ItemContainerStyle>
+                            <ComboBoxItem Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">6</ComboBoxItem>
+                            <ComboBoxItem Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">8</ComboBoxItem>
+                            <ComboBoxItem Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">9</ComboBoxItem>
+                            <ComboBoxItem Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">10</ComboBoxItem>
+                            <ComboBoxItem Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">12</ComboBoxItem>
+                            <ComboBoxItem Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">14</ComboBoxItem>
+                            <ComboBoxItem Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">18</ComboBoxItem>
+                            <ComboBoxItem Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">20</ComboBoxItem>
+                            <ComboBoxItem Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">22</ComboBoxItem>
+                            <ComboBoxItem Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">24</ComboBoxItem>
+                            <ComboBoxItem Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">26</ComboBoxItem>
+                            <ComboBoxItem Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">28</ComboBoxItem>
+                            <ComboBoxItem Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">32</ComboBoxItem>
+                            <ComboBoxItem Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">36</ComboBoxItem>
+                            <ComboBoxItem Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">48</ComboBoxItem>
+                            <ComboBoxItem Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">72</ComboBoxItem>
+                        </ComboBox>
+                        <TextBox Name="FontSizeText" FontFamily="Segoe UI" FontSize="14" Background="White" Height="20" Padding="10 0 0 0" Margin="2,0,35,0" 
+                             BorderThickness="0" VerticalAlignment="Center" TextAlignment="Left" IsReadOnly="True">
+                        </TextBox>
+                    </Grid>
+                </Border>
+
+
+                <Border Grid.ColumnSpan="2" Grid.Row="2" Width="148" Height="32" Margin="12,8,0,0" BorderThickness="1" BorderBrush="#FFE2E3E6" HorizontalAlignment="Left">
+                    <Grid Name="ToolGrid">
+                        <Grid.ColumnDefinitions>
+                            <ColumnDefinition Width="*"></ColumnDefinition>
+                            <ColumnDefinition Width="*"></ColumnDefinition>
+                            <ColumnDefinition Width="*"></ColumnDefinition>
+                        </Grid.ColumnDefinitions>
+
+                        <ToggleButton Name="TextAlignLeftBtn" Tag="AlignLeft" Background="Transparent" BorderThickness="0" >
+                            <Path HorizontalAlignment="Center" VerticalAlignment="Center" Fill="#000000" Data="M10,11 L10,12 L0,12 L0,11 L10,11 Z M16,7 L16,8 L0,8 L0,7 L16,7 Z M13,3 L13,4 L0,4 L0,3 L13,3 Z">
+                            </Path>
+                        </ToggleButton>
+                        <Line HorizontalAlignment="Left" Style="{StaticResource line1Style}" VerticalAlignment="Center" Grid.Column="1" X1="0" Y1="0" X2="0" Y2="16" StrokeThickness="1" Stroke="#33000000"></Line>
+
+                        <ToggleButton Name="TextAlignCenterBtn" Tag="AlignCenter" Grid.Column="1" Background="Transparent"  BorderThickness="0" >
+                            <Path HorizontalAlignment="Center" VerticalAlignment="Center" Fill="#000000" Data="M16,11 L16,12 L0,12 L0,11 L16,11 Z M13,7 L13,8 L3,8 L3,7 L13,7 Z M16,3 L16,4 L0,4 L0,3 L16,3 Z">
+                            </Path>
+                        </ToggleButton>
+                        <Line HorizontalAlignment="Left" Style="{StaticResource line2Style}" VerticalAlignment="Center" Grid.Column="2" X1="0" Y1="0" X2="0" Y2="16" StrokeThickness="1" Stroke="#33000000"></Line>
+
+                        <ToggleButton Name="TextAlignRightBtn" Tag="AlignRight" Grid.Column="2" Background="Transparent"  BorderThickness="0" >
+                            <Path HorizontalAlignment="Center" VerticalAlignment="Center"  Fill="#000000" Data="M16,11 L16,12 L6.00061035,12 L6.00061035,11 L16,11 Z M16,7 L16,8 L0.0009765625,8 L0.0009765625,7 L16,7 Z M16,3 L16,4 L3.00079346,4 L3.00079346,3 L16,3 Z">
+                            </Path>
+                        </ToggleButton>
+                    </Grid>
+                </Border>
+            </Grid>
+
+
+            <Grid Margin="0,18,0,0">
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="*"></ColumnDefinition>
+                    <ColumnDefinition Width="*"></ColumnDefinition>
+                </Grid.ColumnDefinitions>
+                <TextBlock x:Name="FillColorText" FontFamily="Segoe UI Semibold" FontWeight="SemiBold" FontSize="14" LineHeight="20" Margin="12,0,0,0" VerticalAlignment="Center">Fill</TextBlock>
+                <cus:ColorDropBox x:Name="ColorDropFill" Grid.Column="1" Margin="0,0,11,0" BorderThickness="1"  HorizontalAlignment="Right"
+                                BorderBrush="#E2E3E6" Width="80" Height="32"  HasTransparentColor="True"></cus:ColorDropBox>
+            </Grid>
+
+
+            <Grid Margin="0,18,0,0">
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="*"></ColumnDefinition>
+                    <ColumnDefinition Width="*"></ColumnDefinition>
+                </Grid.ColumnDefinitions>
+                <TextBlock x:Name="borderColorText" FontFamily="Segoe UI Semibold" FontWeight="SemiBold" FontSize="14" LineHeight="20" Margin="12,0,0,0" VerticalAlignment="Center">Border</TextBlock>
+                <cus:ColorDropBox x:Name="ColorDropBorder" Grid.Column="1" Margin="0,0,11,0" BorderThickness="1"  HorizontalAlignment="Right"
+                                BorderBrush="#E2E3E6" Width="80" Height="32" ></cus:ColorDropBox>
+            </Grid>
+
+            <TextBlock x:Name="thicknessText" FontFamily="Segoe UI Semibold" FontWeight="SemiBold" FontSize="14" LineHeight="20" Margin="12,14,0,0" >Thickness</TextBlock>
+
+
+            <Grid>
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="*"></ColumnDefinition>
+                    <ColumnDefinition Width="auto"></ColumnDefinition>
+                </Grid.ColumnDefinitions>
+
+                <Slider Name="ThicknessSlider" VerticalAlignment="Center" Margin="12,0,0,0" Width="148"  Minimum="0" Maximum="24" IsSelectionRangeEnabled="True" IsMoveToPointEnabled="True" 
+                    Style="{StaticResource RoundThumbSlider}"  TickFrequency="1" IsSnapToTickEnabled="True" >
+                    <Slider.Resources>
+                        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#477EDE" />
+                        <SolidColorBrush x:Key="{x:Static SystemColors.ControlDarkDarkBrushKey}" Color="#E2E3E6" />
+                    </Slider.Resources>
+                </Slider>
+
+
+                <Border Grid.Column="1" BorderBrush="#E2E3E6"  Width="80" Height="32" Margin="0,0,11,0"  BorderThickness="0">
+                    <Grid>
+                        <ComboBox Name="ThicknessBox" BorderThickness="1" Padding="10" Background="Transparent" BorderBrush="#FFE2E3E6"
+                                  MaxDropDownHeight="200">
+                            <ComboBox.ItemContainerStyle>
+                                <Style TargetType="{x:Type ComboBoxItem}">
+                                    <Setter Property="Padding" Value="10 0 0 0"/>
+                                </Style>
+                            </ComboBox.ItemContainerStyle>
+                            <ComboBoxItem Content="1" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}"/>
+                            <ComboBoxItem Content="3" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}"/>
+                            <ComboBoxItem Content="6" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}"/>
+                            <ComboBoxItem Content="9" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}"/>
+                            <ComboBoxItem Content="12" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}"/>
+                            <ComboBoxItem Content="15" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}"/>
+                            <ComboBoxItem Content="18" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}"/>
+                            <ComboBoxItem Content="21" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}"/>
+                            <ComboBoxItem Content="24" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}"/>
+                        </ComboBox>
+                        <TextBox Name="ThicknessText" Background="White" FontFamily="Segoe UI" FontSize="14"  Height="20" Margin="10,0,35,0" IsReadOnly="True"
+                             BorderThickness="0" VerticalAlignment="Center" TextAlignment="Left" >
+                        </TextBox>
+                    </Grid>
+                </Border>
+            </Grid>
+
+
+            <TextBlock x:Name="opacityText" FontFamily="Segoe UI Semibold" FontWeight="SemiBold" FontSize="14" LineHeight="20" Margin="12,14,0,0" >Opacity</TextBlock>
+
+            <Grid>
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="*"></ColumnDefinition>
+                    <ColumnDefinition Width="auto"></ColumnDefinition>
+                </Grid.ColumnDefinitions>
+                <Slider Name="OpacitySlider" VerticalAlignment="Center" Width="148" Margin="12,0,0,0"  Minimum="0" Maximum="1" IsSelectionRangeEnabled="True" IsMoveToPointEnabled="True" 
+                    Style="{StaticResource RoundThumbSlider}"  TickFrequency="0.01">
+                    <Slider.Resources>
+                        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#477EDE" />
+                        <SolidColorBrush x:Key="{x:Static SystemColors.ControlDarkDarkBrushKey}" Color="#E2E3E6" />
+                    </Slider.Resources>
+                </Slider>
+
+                <Border Grid.Column="1" BorderBrush="#E2E3E6"  Width="80" Height="32" Margin="0,0,11,0"  BorderThickness="0">
+                    <Grid>
+                        <ComboBox Name="OpacityDropBox" BorderThickness="1" BorderBrush="#FFE2E3E6" Padding="10 10 0 0" Background="Transparent"
+                                  >
+                            <ComboBox.ItemContainerStyle>
+                                <Style TargetType="{x:Type ComboBoxItem}">
+                                    <Setter Property="Padding" Value="10 0 0 0"/>
+                                </Style>
+                            </ComboBox.ItemContainerStyle>
+                            <ComboBoxItem Content="25%" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}" />
+                            <ComboBoxItem Content="50%" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}" />
+                            <ComboBoxItem Content="75%" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}" />
+                            <ComboBoxItem Content="100%" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}" />
+                        </ComboBox>
+
+                        <TextBox FontFamily="Segoe UI" FontSize="14" Background="White" Height="20" Margin="10,0,23,0" IsReadOnly="True"
+                             BorderThickness="0" VerticalAlignment="Center" TextAlignment="Left">
+                            <TextBox.Style>
+                                <Style TargetType="TextBox">
+                                    <Style.Setters>
+                                        <Setter Property="TextBox.Text">
+                                            <Setter.Value>
+                                                <MultiBinding StringFormat="P0">
+                                                    <Binding ElementName="OpacitySlider" Path="Value"></Binding>
+                                                </MultiBinding>
+                                            </Setter.Value>
+                                        </Setter>
+                                    </Style.Setters>
+                                </Style>
+                            </TextBox.Style>
+                        </TextBox>
+
+                    </Grid>
+                </Border>
+            </Grid>
+
+
+            <StackPanel Margin="0 36 0 0">
+                <cus:ToastControl x:Name="tip" Width="auto" Height="20" FontFamily="Segoe UI" FontSize="12" Background="#1A477EDE" Foreground="#477EDE"/>
+                <Button x:Name="UseAsDefaultBtn" Content="Use As Default"  Margin="12,8,12,0" Width="232" Height="32" Foreground="#273C62"
+                Background="White" BorderThickness="1" BorderBrush="#FF273C62" FontWeight="SemiBold" FontFamily="Segoe UI" FontSize="14" ></Button>
+            </StackPanel>
+            <TextBlock x:Name="noteText" Text="Note" FontFamily="Segoe UI Semibold" FontWeight="SemiBold" FontSize="14" LineHeight="20" Margin="12,30,0,0"/>
+            <TextBox Name="AnnotNoteText" FontSize="14" TextWrapping="Wrap" BorderBrush="#E2E3E6" Width="232" Height="96" Margin="12,10,12,0"  AcceptsReturn="True">
+            </TextBox>
+
+
+
+        </StackPanel>
     </Grid>
 </UserControl>

+ 495 - 2
PDF Office/Views/PropertyPanel/AnnotPanel/SharpsAnnotProperty.xaml

@@ -4,9 +4,502 @@
              xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
              xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
              xmlns:local="clr-namespace:PDF_Office.Views.PropertyPanel.AnnotPanel"
+              xmlns:cus="clr-namespace:PDF_Office.CustomControl"
+             xmlns:Convert="clr-namespace:PDF_Office.DataConvert"
              mc:Ignorable="d" 
              d:DesignHeight="450" d:DesignWidth="800">
-    <Grid>
-            
+    <UserControl.Resources>
+        <ResourceDictionary>
+            <ResourceDictionary.MergedDictionaries>
+                <ResourceDictionary Source="../../../Styles/SliderStyle.xaml"></ResourceDictionary>
+            </ResourceDictionary.MergedDictionaries>
+            <Convert:ColorToBrushConverter x:Key="ColorToBrushConvert"></Convert:ColorToBrushConverter>
+            <Convert:CheckToVisibleMutiConvert x:Key="CheckToVisibleMutiConvert"/>
+            <Style x:Key="line1Style" TargetType="{x:Type Line}">
+                <Setter Property="Visibility">
+                    <Setter.Value>
+                        <MultiBinding Converter="{StaticResource CheckToVisibleMutiConvert}">
+                            <Binding ElementName="SharpRectBtn" Path="IsChecked"/>
+                            <Binding ElementName="SharpCircleBtn" Path="IsChecked"/>
+                        </MultiBinding>
+                    </Setter.Value>
+                </Setter>
+            </Style>
+            <Style x:Key="line2Style" TargetType="{x:Type Line}">
+                <Setter Property="Visibility">
+                    <Setter.Value>
+                        <MultiBinding Converter="{StaticResource CheckToVisibleMutiConvert}">
+                            <Binding ElementName="SharpCircleBtn" Path="IsChecked"/>
+                            <Binding ElementName="SharpArrowBtn" Path="IsChecked"/>
+                        </MultiBinding>
+                    </Setter.Value>
+                </Setter>
+            </Style>
+            <Style x:Key="line3Style" TargetType="{x:Type Line}">
+                <Setter Property="Visibility">
+                    <Setter.Value>
+                        <MultiBinding Converter="{StaticResource CheckToVisibleMutiConvert}">
+                            <Binding ElementName="SharpArrowBtn" Path="IsChecked"/>
+                            <Binding ElementName="SharpLineBtn" Path="IsChecked"/>
+                        </MultiBinding>
+                    </Setter.Value>
+                </Setter>
+            </Style>
+        </ResourceDictionary>
+    </UserControl.Resources>
+    <Grid Background="Wheat">
+        <StackPanel>
+            <TextBlock Name="AnnotTypeTitle" FontFamily="SegoeUI" FontWeight="Bold" FontSize="18" LineHeight="24" HorizontalAlignment="Center" Margin="0,8,0,0">Freehand</TextBlock>
+            <Border Width="232" Height="80" BorderThickness="1" BorderBrush="#E2E3E6" Margin="0,8,0,0">
+                <Grid>
+                    <!--<Path Name="SharpPath" Opacity="{Binding ElementName=OpacitySlider,Path=Value}" StrokeThickness="{Binding ElementName=ThicknessSlider,Path=Value}" 
+                        Stroke="{Binding ElementName=BorderColorPicker,Path=SelectedColor,Converter={StaticResource ColorToBrushConvert}}"
+                        Fill="{Binding ElementName=FillColorPicker,Path=SelectedColor,Converter={StaticResource ColorToBrushConvert}}"
+                        Width="36" Height="36" HorizontalAlignment="Center" VerticalAlignment="Center">
+                    </Path>-->
+                </Grid>
+            </Border>
+
+
+            <Border Width="162" Height="32" Margin="0,12,0,0" BorderThickness="1" BorderBrush="#FFE2E3E6">
+                <Grid Name="ToolGrid">
+                    <Grid.ColumnDefinitions>
+                        <ColumnDefinition Width="40.5"></ColumnDefinition>
+                        <ColumnDefinition Width="40.5"></ColumnDefinition>
+                        <ColumnDefinition Width="40.5"></ColumnDefinition>
+                        <ColumnDefinition Width="40.5"></ColumnDefinition>
+                    </Grid.ColumnDefinitions>
+
+
+                    <ToggleButton Name="SharpRectBtn" Tag="Rect" Width="40.5" Background="Transparent" BorderThickness="0">
+                        <Rectangle HorizontalAlignment="Center" VerticalAlignment="Center" Width="16" Height="16" Stroke="#273C62"></Rectangle>
+                    </ToggleButton>
+
+                    <Line Name="line1" HorizontalAlignment="Left"  VerticalAlignment="Center" Grid.Column="1" X1="0" Y1="0" X2="0" Y2="16" StrokeThickness="1" Stroke="#33000000">
+
+                    </Line>
+
+                    <ToggleButton Name="SharpCircleBtn" Width="40.5" Tag="Circle" Grid.Column="1" Background="Transparent"  BorderThickness="0"  Margin="0,0,0,0">
+                        <Ellipse Width="16" Height="16" Stroke="#273C62" HorizontalAlignment="Center" VerticalAlignment="Center"  ></Ellipse>
+                    </ToggleButton>
+
+
+                    <Line Name="line2" HorizontalAlignment="Left" Style="{StaticResource line2Style}" VerticalAlignment="Center" Grid.Column="2" X1="0" Y1="0" X2="0" Y2="16" StrokeThickness="1" Stroke="#33000000"></Line>
+                    <ToggleButton Name="SharpArrowBtn" Width="40.5" Tag="Arrow" Grid.Column="2" Background="Transparent"  BorderThickness="0" >
+                        <Path HorizontalAlignment="Center" VerticalAlignment="Center"  Fill="#273C62" Width="16" Height="16">
+                            <Path.Data>
+                                M13.4,2.6 L13.4,8 L12.2,8 L12.1997359,4.648 L2.02426407,14.8242641 L1.17573593,13.9757359 L11.3517359,3.799 L8,3.8 L8,2.6 L13.4,2.6 Z
+                            </Path.Data>
+                        </Path>
+                    </ToggleButton>
+
+                    <Line x:Name="line3" HorizontalAlignment="Left" Style="{StaticResource line3Style}" VerticalAlignment="Center" Grid.Column="3" X1="0" Y1="0" X2="0" Y2="16" StrokeThickness="1" Stroke="#33000000"></Line>
+                    <ToggleButton Name="SharpLineBtn" Width="40.5" Tag="Line" Grid.Column="3" Background="Transparent"  BorderThickness="0">
+                        <Polygon Width="16" Height="16" HorizontalAlignment="Center" VerticalAlignment="Center" Fill="#273C62">
+                            <Polygon.Points>
+                                13.1757359 1.97573593 14.0242641 2.82426407 2.82426407 14.0242641 1.97573593 13.1757359
+                            </Polygon.Points>
+                        </Polygon>
+                    </ToggleButton>
+
+                </Grid>
+            </Border>
+
+
+
+            <Grid Margin="0,18,0,0">
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="*"></ColumnDefinition>
+                    <ColumnDefinition Width="*"></ColumnDefinition>
+                </Grid.ColumnDefinitions>
+                <TextBlock x:Name="borderColorText" LineHeight="20" Margin="12,0,0,0" VerticalAlignment="Center">Border</TextBlock>
+                <cus:ColorDropBox x:Name="BorderColorPicker" Grid.Column="1" Margin="0,0,12,0" BorderThickness="1"  HorizontalAlignment="Right"
+                                BorderBrush="#E2E3E6" Width="80" Height="32"  ></cus:ColorDropBox>
+            </Grid>
+
+
+            <Grid Margin="0,18,0,0" Name="FillGrid">
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="*"></ColumnDefinition>
+                    <ColumnDefinition Width="*"></ColumnDefinition>
+                </Grid.ColumnDefinitions>
+                <TextBlock x:Name="FillColorText"  LineHeight="20" Margin="12,0,0,0" VerticalAlignment="Center">Fill</TextBlock>
+                <cus:ColorDropBox x:Name="FillColorPicker" Grid.Column="1" Margin="0,0,12,0" BorderThickness="1"  HorizontalAlignment="Right" HasTransparentColor="True"
+                                BorderBrush="#E2E3E6" Width="80" Height="32" ></cus:ColorDropBox>
+            </Grid>
+
+
+            <Grid Margin="12,18,0,0" Name="ArrowGrid" Visibility="Visible">
+                <Grid.RowDefinitions>
+                    <RowDefinition Height="auto"></RowDefinition>
+                    <RowDefinition Height="auto"></RowDefinition>
+                </Grid.RowDefinitions>
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="auto"></ColumnDefinition>
+                    <ColumnDefinition Width="auto"></ColumnDefinition>
+                </Grid.ColumnDefinitions>
+
+                <TextBlock x:Name="StartAndEndText" Grid.ColumnSpan="2"  LineHeight="20" Margin="0,6,0,0" VerticalAlignment="Center">Start &amp; End</TextBlock>
+
+                <Border Grid.Row="1" BorderBrush="#E2E3E6" BorderThickness="0"  Width="115" Height="32">
+                    <Grid>
+                        <ComboBox Name="StartArrowBox"  Background="Transparent"  BorderThickness="1" BorderBrush="#FFE2E3E6" IsReadOnly="True"
+                              MaxDropDownHeight="200">
+                            <ComboBox.ItemContainerStyle>
+                                <Style TargetType="{x:Type ComboBoxItem}">
+                                    <Setter Property="Padding" Value="25 0 0 0"/>
+                                </Style>
+                            </ComboBox.ItemContainerStyle>
+                            <ComboBoxItem VerticalAlignment="Center" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <Path Fill="#000000" Tag="Line"  Height="20">
+                                    <Path.Data>
+                                        F1 M40,16z M0,0z M34,7.5L34,7.5 34,8.5 6,8.5 6,7.5z
+                                    </Path.Data>
+                                </Path>
+                            </ComboBoxItem>
+                            <ComboBoxItem  VerticalAlignment="Center" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <Path Fill="#000000" Tag="Arrow" Height="20">
+                                    <Path.Data>
+                                        F1 M40,16z M0,0z M10.7427521,4.57125354L11.2572479,5.42874646 7.80417468,7.49925354 34,7.5 34,8.5 7.80417468,8.49925354 11.2572479,10.5712535 10.7427521,11.4287465 5.02817468,8 10.7427521,4.57125354z
+                                    </Path.Data>
+                                </Path>
+                            </ComboBoxItem>
+                            <ComboBoxItem VerticalAlignment="Center" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <Path Fill="#000000" Tag="CloseArrow" Height="20">
+                                    <Path.Data>
+                                        F1 M40,16z M0,0z M11.5,4.11690481L11.4991747,7.49990481 34,7.5 34,8.5 11.4991747,8.49990481 11.5,11.8830952 5.02817468,8 11.5,4.11690481z
+                                    </Path.Data>
+                                </Path>
+                            </ComboBoxItem>
+                            <ComboBoxItem VerticalAlignment="Center" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <Path Fill="#000000" Tag="Square"  Height="20">
+                                    <Path.Data>
+                                        M11.5,5 L11.5,7.5 L34,7.5 L34,8.5 L11.5,8.5 L11.5,11 L5.5,11 L5.5,5 L11.5,5 Z
+                                    </Path.Data>
+                                </Path>
+                            </ComboBoxItem>
+                            <ComboBoxItem VerticalAlignment="Center" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <Path Fill="#000000" Tag="Circle"  Height="20">
+                                    <Path.Data>
+                                        M8.5,5 C9.98660106,5 11.2206526,6.08129303 11.4585702,7.50029469 L34,7.5 L34,8.5 L11.4584039,8.50069618 C11.2200781,9.9192103 9.98625501,11 8.5,11 C6.84314575,11 5.5,9.65685425 5.5,8 C5.5,6.34314575 6.84314575,5 8.5,5 Z
+                                    </Path.Data>
+                                </Path>
+                            </ComboBoxItem>
+                            <ComboBoxItem VerticalAlignment="Center" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <Path Fill="#000000" Tag="Diamond"  Height="20">
+                                    <Path.Data>
+                                        M9,4.29289322 L12.2068932,7.49989322 L34,7.5 L34,8.5 L12.2068932,8.49989322 L9,11.7071068 L5.29289322,8 L9,4.29289322 Z
+                                    </Path.Data>
+                                </Path>
+                            </ComboBoxItem>
+                            <ComboBoxItem VerticalAlignment="Center" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <Path Fill="#000000" Tag="Butt"  Height="20">
+                                    <Path.Data>
+                                        M7.5,5.5 L7.5,7.5 L34,7.5 L34,8.5 L7.5,8.5 L7.5,10.5 L6.5,10.5 L6.5,5.5 L7.5,5.5 Z
+                                    </Path.Data>
+                                </Path>
+                            </ComboBoxItem>
+                            <ComboBoxItem  VerticalAlignment="Center" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <Path Fill="#000000" Tag="RArrow" Height="20">
+                                    <Path.Data>
+                                        M5.58660083,5.07600085 L9.46460189,7.49900085 L34,7.5 L34,8.5 L9.46460189,8.49900085 L5.58660083,10.9239992 L5.05660189,10.0760008 L8.37960136,8 L5.05660189,5.92399915 L5.58660083,5.07600085 Z
+                                    </Path.Data>
+                                </Path>
+                            </ComboBoxItem>
+                            <ComboBoxItem VerticalAlignment="Center" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <Path Fill="#000000" Tag="RCloseArrow" Height="20">
+                                    <Path.Data>
+                                        M5.5,4.59787618 L10.143,7.49987618 L34,7.5 L34,8.5 L10.143,8.49987618 L5.5,11.4021238 L5.5,4.59787618 Z
+                                    </Path.Data>
+                                </Path>
+                            </ComboBoxItem>
+                            <ComboBoxItem VerticalAlignment="Center" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <Path Fill="#000000" Tag="Slash" Height="20">
+                                    <Path.Data>
+                                        M9.531981,5.84644661 L10.239087,6.55355339 L9.292447,7.49944661 L34,7.5 L34,8.5 L8.292447,8.49944661 L6.703553,10.0890873 L5.996447,9.38198052 L9.531981,5.84644661 Z
+                                    </Path.Data>
+                                </Path>
+                            </ComboBoxItem>
+                        </ComboBox>
+
+
+                        <TextBox Background="White" Height="20" Margin="10,0,35,0" 
+                             BorderThickness="0" VerticalAlignment="Center" IsReadOnly="True">
+                        </TextBox>
+                        <Path Name="StartArrowPath" VerticalAlignment="Center" Fill="#000000" Width="56" Height="16" Margin="30,8,0,8" HorizontalAlignment="Left"></Path>
+
+                        
+
+                    </Grid>
+
+                </Border>
+
+
+                <Border Grid.Row="1" Grid.Column="1" BorderBrush="#E2E3E6" BorderThickness="0" Width="115" Height="32" Margin="4,0,0,0">
+                    <Grid>
+                        <ComboBox Name="EndArrowBox" Background="Transparent" BorderBrush="#FFE2E3E6" BorderThickness="1" IsReadOnly="True"
+                           MaxDropDownHeight="200">
+                            <ComboBox.ItemContainerStyle>
+                                <Style TargetType="{x:Type ComboBoxItem}">
+                                    <Setter Property="Padding" Value="25 0 0 0"/>
+                                </Style>
+                            </ComboBox.ItemContainerStyle>
+                            <ComboBoxItem  VerticalAlignment="Center" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <Path Fill="#000000" Tag="Line"  Height="20">
+                                    <Path.Data>
+                                        F1 M40,16z M0,0z M34,7.5L34,7.5 34,8.5 6,8.5 6,7.5z
+                                    </Path.Data>
+                                </Path>
+                            </ComboBoxItem>
+                            <ComboBoxItem  VerticalAlignment="Center" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <Path Fill="#000000" Tag="Arrow" Height="20">
+                                    <Path.Data>
+                                        F1 M40,16z M0,0z M10.7427521,4.57125354L11.2572479,5.42874646 7.80417468,7.49925354 34,7.5 34,8.5 7.80417468,8.49925354 11.2572479,10.5712535 10.7427521,11.4287465 5.02817468,8 10.7427521,4.57125354z
+                                    </Path.Data>
+                                    <Path.LayoutTransform>
+                                        <RotateTransform Angle="180"></RotateTransform>
+                                    </Path.LayoutTransform>
+                                </Path>
+                            </ComboBoxItem>
+                            <ComboBoxItem  VerticalAlignment="Center" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <Path Fill="#000000" Tag="CloseArrow" Height="20">
+                                    <Path.Data>
+                                        F1 M40,16z M0,0z M11.5,4.11690481L11.4991747,7.49990481 34,7.5 34,8.5 11.4991747,8.49990481 11.5,11.8830952 5.02817468,8 11.5,4.11690481z
+                                    </Path.Data>
+                                    <Path.LayoutTransform>
+                                        <RotateTransform Angle="180"></RotateTransform>
+                                    </Path.LayoutTransform>
+                                </Path>
+                            </ComboBoxItem>
+                            <ComboBoxItem  VerticalAlignment="Center" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <Path Fill="#000000" Tag="Square" Height="20" Margin="6,0,0,0" >
+                                    <Path.Data>
+                                        M11.5,5 L11.5,7.5 L34,7.5 L34,8.5 L11.5,8.5 L11.5,11 L5.5,11 L5.5,5 L11.5,5 Z
+                                    </Path.Data>
+                                    <Path.LayoutTransform>
+                                        <RotateTransform Angle="180"></RotateTransform>
+                                    </Path.LayoutTransform>
+                                </Path>
+                            </ComboBoxItem>
+                            <ComboBoxItem VerticalAlignment="Center" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <Path Fill="#000000" Tag="Circle"  Height="20" Margin="6,0,0,0" >
+                                    <Path.Data>
+                                        M8.5,5 C9.98660106,5 11.2206526,6.08129303 11.4585702,7.50029469 L34,7.5 L34,8.5 L11.4584039,8.50069618 C11.2200781,9.9192103 9.98625501,11 8.5,11 C6.84314575,11 5.5,9.65685425 5.5,8 C5.5,6.34314575 6.84314575,5 8.5,5 Z
+                                    </Path.Data>
+                                    <Path.LayoutTransform>
+                                        <RotateTransform Angle="180"></RotateTransform>
+                                    </Path.LayoutTransform>
+                                </Path>
+                            </ComboBoxItem>
+                            <ComboBoxItem  VerticalAlignment="Center" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <Path Fill="#000000" Tag="Diamond"  Height="20" Margin="6,0,0,0" >
+                                    <Path.Data>
+                                        M9,4.29289322 L12.2068932,7.49989322 L34,7.5 L34,8.5 L12.2068932,8.49989322 L9,11.7071068 L5.29289322,8 L9,4.29289322 Z
+                                    </Path.Data>
+                                    <Path.LayoutTransform>
+                                        <RotateTransform Angle="180"></RotateTransform>
+                                    </Path.LayoutTransform>
+                                </Path>
+                            </ComboBoxItem>
+                            <ComboBoxItem  VerticalAlignment="Center" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <Path Fill="#000000" Tag="Butt"  Height="20" Margin="6,0,0,0" >
+                                    <Path.Data>
+                                        M7.5,5.5 L7.5,7.5 L34,7.5 L34,8.5 L7.5,8.5 L7.5,10.5 L6.5,10.5 L6.5,5.5 L7.5,5.5 Z
+                                    </Path.Data>
+                                    <Path.LayoutTransform>
+                                        <RotateTransform Angle="180"></RotateTransform>
+                                    </Path.LayoutTransform>
+                                </Path>
+                            </ComboBoxItem>
+                            <ComboBoxItem  VerticalAlignment="Center" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <Path Fill="#000000" Tag="RArrow"  Height="20" Margin="6,0,0,0" >
+                                    <Path.Data>
+                                        M5.58660083,5.07600085 L9.46460189,7.49900085 L34,7.5 L34,8.5 L9.46460189,8.49900085 L5.58660083,10.9239992 L5.05660189,10.0760008 L8.37960136,8 L5.05660189,5.92399915 L5.58660083,5.07600085 Z
+                                    </Path.Data>
+                                    <Path.LayoutTransform>
+                                        <RotateTransform Angle="180"></RotateTransform>
+                                    </Path.LayoutTransform>
+                                </Path>
+                            </ComboBoxItem>
+                            <ComboBoxItem  VerticalAlignment="Center" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <Path Fill="#000000" Tag="RCloseArrow"  Height="20" Margin="6,0,0,0" >
+                                    <Path.Data>
+                                        M5.5,4.59787618 L10.143,7.49987618 L34,7.5 L34,8.5 L10.143,8.49987618 L5.5,11.4021238 L5.5,4.59787618 Z
+                                    </Path.Data>
+                                    <Path.LayoutTransform>
+                                        <RotateTransform Angle="180"></RotateTransform>
+                                    </Path.LayoutTransform>
+                                </Path>
+                            </ComboBoxItem>
+                            <ComboBoxItem VerticalAlignment="Center" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}">
+                                <Path Fill="#000000" Tag="Slash"  Height="20" Margin="6,0,0,0" >
+                                    <Path.Data>
+                                        M9.531981,5.84644661 L10.239087,6.55355339 L9.292447,7.49944661 L34,7.5 L34,8.5 L8.292447,8.49944661 L6.703553,10.0890873 L5.996447,9.38198052 L9.531981,5.84644661 Z
+                                    </Path.Data>
+                                    <Path.LayoutTransform>
+                                        <RotateTransform Angle="180"></RotateTransform>
+                                    </Path.LayoutTransform>
+                                </Path>
+                            </ComboBoxItem>
+                        </ComboBox>
+                        <TextBox Background="White" Height="20"  Margin="10,0,35,0" 
+                             BorderThickness="0" VerticalAlignment="Center" IsReadOnly="True">
+                        </TextBox>
+                        <Path Name="EndArrowPath" Fill="#000000" Width="56" Height="16" Margin="12,8,0,8" HorizontalAlignment="Left">
+                            <Path.LayoutTransform>
+                                <RotateTransform Angle="180"></RotateTransform>
+                            </Path.LayoutTransform>
+                        </Path>
+
+                    </Grid>
+                </Border>
+            </Grid>
+
+            <TextBlock x:Name="LineStyleText"  LineHeight="20" Margin="12,14,0,0">Line Style</TextBlock>
+
+
+            <Grid>
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="auto"></ColumnDefinition>
+                    <ColumnDefinition Width="auto"></ColumnDefinition>
+                    <ColumnDefinition Width="*"></ColumnDefinition>
+                </Grid.ColumnDefinitions>
+                <Grid.RowDefinitions>
+                    <RowDefinition Height="auto"></RowDefinition>
+                    <RowDefinition Height="auto"></RowDefinition>
+                </Grid.RowDefinitions>
+
+
+                <Viewbox Height="18" Width="18" Margin="12,12,10,0">
+                    <RadioButton Tag="SolidLine" Name="SolidLineBtn" GroupName="LineStyleGroup" IsChecked="True" ></RadioButton>
+                </Viewbox>
+                <Line Name="SolidLineControl" Margin="0,12,0,0" Grid.Column="1" Stroke="#000000" StrokeThickness="2" X1="0" Y1="0" X2="112" Y2="0" VerticalAlignment="Center"></Line>
+                <Viewbox Grid.Row="1" Height="18" Width="18" Margin="12,22,10,0">
+                    <RadioButton Tag="DashLine" Name="DashLineBtn" GroupName="LineStyleGroup" VerticalAlignment="Center"/>
+                </Viewbox>
+
+                <Line Name="DashLineControl" Margin="0,22,0,0" Grid.Row="1" Grid.Column="1" Stroke="#000000" StrokeThickness="2" X1="0" Y1="0" X2="112" Y2="0" VerticalAlignment="Center" StrokeDashArray="0,1,1"></Line>
+                <!--<cus:AutoNumber x:Name="NumberBox" Grid.Row="1" Grid.Column="2" Width="80" Height="32" Margin="0,22,0,0" Maximum="50" Minimum="1" TickFrequency="1" Current="1"
+                              BorderBrush="#FFE2E3E6" BorderThickness="1" IsEnabled="False" NumberChanged="NumberBox_NumberChanged">
+                    <local:AutoNumber.Resources>
+                        <Style TargetType="local:AutoNumber">
+                            <Style.Triggers>
+                                <Trigger Property="IsEnabled" Value="False">
+                                    <Setter Property = "Background" Value="LightGray"/>
+                                </Trigger>
+                                <Trigger Property="IsEnabled" Value="True">
+                                    <Setter Property = "Background" Value="White"/>
+                                </Trigger>
+                            </Style.Triggers>
+                        </Style>
+                    </local:AutoNumber.Resources>
+                </cus:AutoNumber>-->
+            </Grid>
+
+
+
+            <TextBlock x:Name="thicknessText"  LineHeight="20" Margin="12,14,0,0" >Thickness</TextBlock>
+
+
+            <Grid>
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="*"></ColumnDefinition>
+                    <ColumnDefinition Width="auto"></ColumnDefinition>
+                </Grid.ColumnDefinitions>
+
+
+                <Slider Name="ThicknessSlider" VerticalAlignment="Center" Margin="12,0,4,0"  Minimum="1" Maximum="12" IsSelectionRangeEnabled="True" IsMoveToPointEnabled="True" 
+                    Style="{StaticResource RoundThumbSlider}"  TickFrequency="1" IsSnapToTickEnabled="True">
+                    <Slider.Resources>
+                        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#477EDE" />
+                        <SolidColorBrush x:Key="{x:Static SystemColors.ControlDarkDarkBrushKey}" Color="#E2E3E6" />
+                    </Slider.Resources>
+                </Slider>
+
+
+                <Border Grid.Column="1" BorderBrush="#E2E3E6"  Width="80" Height="32" Margin="0,0,12,0"  BorderThickness="0">
+                    <Grid>
+                        <ComboBox Name="ThicknessDropBox" BorderThickness="1" Padding="10 10 0 0" Background="Transparent" BorderBrush="#FFE2E3E6" >
+                            <ComboBox.ItemContainerStyle>
+                                <Style TargetType="{x:Type ComboBoxItem}">
+                                    <Setter Property="Padding" Value="10 0 0 0"/>
+                                </Style>
+                            </ComboBox.ItemContainerStyle>
+                            <ComboBoxItem Content="1" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}"/>
+                            <ComboBoxItem Content="3" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}"/>
+                            <ComboBoxItem Content="6" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}"/>
+                            <ComboBoxItem Content="9" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}"/>
+                            <ComboBoxItem Content="12" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}"/>
+                        </ComboBox>
+                        <TextBox FontFamily="Segoe UI" FontSize="14" Background="White" Padding="0" Height="20" Margin="10,0,35,0" IsReadOnly="True"
+                             BorderThickness="0" VerticalAlignment="Center" TextAlignment="Left" Text="{Binding ElementName=ThicknessSlider,Path=Value}">
+                        </TextBox>
+
+                    </Grid>
+                </Border>
+            </Grid>
+
+            <TextBlock x:Name="opacityText" LineHeight="20" Margin="12,14,0,0" >Opacity</TextBlock>
+
+
+            <Grid>
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="*"></ColumnDefinition>
+                    <ColumnDefinition Width="auto"></ColumnDefinition>
+                </Grid.ColumnDefinitions>
+
+
+                <Slider Name="OpacitySlider" VerticalAlignment="Center" Margin="12,0,4,0"  Minimum="0" Maximum="1" IsSelectionRangeEnabled="True" IsMoveToPointEnabled="True" 
+                    Style="{StaticResource RoundThumbSlider}"  TickFrequency="0.01" >
+                    <Slider.Resources>
+                        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#477EDE" />
+                        <SolidColorBrush x:Key="{x:Static SystemColors.ControlDarkDarkBrushKey}" Color="#E2E3E6" />
+                    </Slider.Resources>
+                </Slider>
+
+                <Border Grid.Column="1" BorderBrush="#E2E3E6"  Width="80" Height="32" Margin="0,0,12,0"  BorderThickness="0">
+                    <Grid>
+                        <ComboBox Name="OpacityDropBox" BorderThickness="1" Padding="10 10 0 0" Background="Transparent" BorderBrush="#FFE2E3E6">
+                            <ComboBox.ItemContainerStyle>
+                                <Style TargetType="{x:Type ComboBoxItem}">
+                                    <Setter Property="Padding" Value="10 0 0 0"/>
+                                </Style>
+                            </ComboBox.ItemContainerStyle>
+                            <ComboBoxItem Content="25%" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}" />
+                            <ComboBoxItem Content="50%" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}"/>
+                            <ComboBoxItem Content="75%" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}"/>
+                            <ComboBoxItem Content="100%" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}"/>
+                        </ComboBox>
+                        <TextBox FontFamily="Segoe UI" FontSize="14" Background="White" Height="20" Margin="10,0,23,0" 
+                             BorderThickness="0" VerticalAlignment="Center" TextAlignment="Left" IsReadOnly="True">
+                            <TextBox.Style>
+                                <Style TargetType="TextBox">
+                                    <Style.Setters>
+                                        <Setter Property="TextBox.Text">
+                                            <Setter.Value>
+                                                <MultiBinding StringFormat="P0">
+                                                    <Binding ElementName="OpacitySlider" Path="Value"></Binding>
+                                                </MultiBinding>
+                                            </Setter.Value>
+                                        </Setter>
+                                    </Style.Setters>
+                                </Style>
+                            </TextBox.Style>
+                        </TextBox>
+                    </Grid>
+                </Border>
+            </Grid>
+
+
+
+            <StackPanel Margin="0 36 0 0">
+                <cus:ToastControl x:Name="tip" Width="auto" Height="20" FontSize="12" Background="#1A477EDE" Foreground="#477EDE"/>
+                <Button x:Name="UseAsDefaultBtn" Content="Use As Default"  Margin="12,8,12,0" Width="232" Height="32" Foreground="#273C62" FontWeight="SemiBold"
+                Background="White" BorderThickness="1" BorderBrush="#273C62" FontFamily="SegoeUI" FontSize="14" ></Button>
+            </StackPanel>
+            <TextBlock x:Name="noteText" Text="Note" LineHeight="20" Margin="12,30,0,0"></TextBlock>
+            <TextBox Name="AnnotNoteText" FontSize="14" TextWrapping="Wrap" BorderBrush="#E2E3E6" Width="232" Height="96" Margin="12,10,12,0"  AcceptsReturn="True">
+            </TextBox>
+        </StackPanel>
     </Grid>
 </UserControl>

+ 99 - 1
PDF Office/Views/PropertyPanel/AnnotPanel/TextAnnotProperty.xaml

@@ -7,7 +7,105 @@
              xmlns:cus="clr-namespace:PDF_Office.CustomControl"
              mc:Ignorable="d" 
              d:DesignHeight="450" d:DesignWidth="800">
+    <UserControl.Resources>
+        <ResourceDictionary>
+            <ResourceDictionary.MergedDictionaries>
+                <ResourceDictionary Source="../../../Styles/SliderStyle.xaml"></ResourceDictionary>
+            </ResourceDictionary.MergedDictionaries>
+        </ResourceDictionary>
+    </UserControl.Resources>
     <Grid  Width="250" VerticalAlignment="Stretch" Background="Wheat">
-        
+        <StackPanel Margin="12 0 12 0">
+            <TextBlock Name="AnnotTypeTitle" FontFamily="Segoe UI" FontWeight="Bold" FontSize="18" LineHeight="24" HorizontalAlignment="Center" Margin="0,8,0,0"></TextBlock>
+            <Border Width="232" Height="80" BorderThickness="1" BorderBrush="#E2E3E6" Margin="0,8,0,0">
+                <Grid>
+                    <TextBlock Name="SampleText" Text="Sample" HorizontalAlignment="Center" VerticalAlignment="Center" FontWeight="Bold" FontFamily="Segoe UI" FontSize="18">
+                    </TextBlock>
+                    <Path Name="UnderlinePath" HorizontalAlignment="Center" StrokeThickness="2" Margin="0,51,0,0" Visibility="Collapsed">
+                        <Path.Data>
+                            <LineGeometry StartPoint="0,0" EndPoint="62,0"></LineGeometry>
+                        </Path.Data>
+                    </Path>
+                    <Path Name="StrikeoutPath" HorizontalAlignment="Center" StrokeThickness="2" Margin="0,40,0,0" Visibility="Collapsed">
+                        <Path.Data>
+                            <LineGeometry StartPoint="0,0" EndPoint="62,0"></LineGeometry>
+                        </Path.Data>
+                    </Path>
+                    <Path Name="SquigglyPath"  HorizontalAlignment="Center" StrokeThickness="2" Margin="0,51,0,0" Visibility="Collapsed">
+
+                    </Path>
+
+                    <Path Name="StickyPath" HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="Collapsed" Fill="#FF8133"
+                      Data="M28.8,4.8 L28.8,24 L16,24 L8,28.8 L8,24 L3.2,24 L3.2,4.8 L28.8,4.8 Z M24,15.2 L8,15.2 L8,17.6 L24,17.6 L24,15.2 Z M17.6,9.6 L8,9.6 L8,12 L17.6,12 L17.6,9.6 Z">
+
+                    </Path>
+                </Grid>
+            </Border>
+
+            <Grid Margin="0,18,0,0">
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="*"></ColumnDefinition>
+                    <ColumnDefinition Width="*"></ColumnDefinition>
+                </Grid.ColumnDefinitions>
+                <TextBlock x:Name="colorText"  LineHeight="20" TextAlignment="Left" VerticalAlignment="Center">Color</TextBlock>
+                <cus:ColorDropBox x:Name="ColorDropPicker" Grid.Column="1" BorderThickness="1"  HorizontalAlignment="Right"
+                                BorderBrush="#E2E3E6" Width="80" Height="32"  ></cus:ColorDropBox>
+            </Grid>
+
+            <TextBlock x:Name="opacityText"  TextAlignment="Left" LineHeight="20" Margin="0,14,0,0" >Opacity</TextBlock>
+
+            <Grid>
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="*"></ColumnDefinition>
+                    <ColumnDefinition Width="auto"></ColumnDefinition>
+                </Grid.ColumnDefinitions>
+                <Slider Name="OpacitySlider" HorizontalAlignment="Left" VerticalAlignment="Center" Minimum="0" Maximum="1" IsSelectionRangeEnabled="True" IsSnapToTickEnabled="True" IsMoveToPointEnabled="True"
+                    Style="{StaticResource RoundThumbSlider}" Width="148" TickFrequency="0.01" ValueChanged="OpacitySlider_ValueChanged" Thumb.DragStarted="OpacitySlider_DragStarted" 
+                    Thumb.DragCompleted="OpacitySlider_DragCompleted">
+                    <Slider.Resources>
+                        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#477EDE" />
+                        <SolidColorBrush x:Key="{x:Static SystemColors.ControlDarkDarkBrushKey}" Color="#E2E3E6" />
+                    </Slider.Resources>
+                </Slider>
+
+                <Border Grid.Column="1" HorizontalAlignment="Right" Background="Transparent" BorderBrush="#E2E3E6"  Width="80" Height="32"  BorderThickness="0">
+                    <Grid>
+                        <ComboBox Name="OpacityDropBox" BorderThickness="1" Background="Transparent" BorderBrush="#FFE2E3E6">
+                            <ComboBoxItem Content="25%" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}"/>
+                            <ComboBoxItem Content="50%" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}" />
+                            <ComboBoxItem Content="75%" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}" />
+                            <ComboBoxItem Content="100%" Height="32" VerticalContentAlignment="Center" Template="{StaticResource comboxitem}" />
+                        </ComboBox>
+                        <TextBox FontFamily="Segoe UI" FontSize="14" Background="White" Height="20" Margin="2,0,23,0" IsReadOnly="True"
+                             BorderThickness="0" VerticalAlignment="Center" TextAlignment="Center">
+                            <TextBox.Style>
+                                <Style TargetType="TextBox">
+                                    <Style.Setters>
+                                        <Setter Property="TextBox.Text">
+                                            <Setter.Value>
+                                                <MultiBinding StringFormat="P0">
+                                                    <Binding ElementName="OpacitySlider" Path="Value"></Binding>
+                                                </MultiBinding>
+                                            </Setter.Value>
+                                        </Setter>
+                                    </Style.Setters>
+                                </Style>
+                            </TextBox.Style>
+                        </TextBox>
+                    </Grid>
+                </Border>
+            </Grid>
+
+
+            <StackPanel Margin="0 36 0 0">
+                <cus:ToastControl x:Name="tip" Width="auto" Height="20" FontFamily="Segoe UI" FontSize="12" Background="#1A477EDE" Foreground="#477EDE"/>
+
+                <Button x:Name="UseAsDefaultBtn"  Margin="0 8 0 0" Content="Use As Default"  Width="232" Height="32" Foreground="#273C62" FontWeight="SemiBold"
+                Background="White" BorderThickness="1" BorderBrush="#273C62" FontFamily="Segoe UI" FontSize="14" ></Button>
+            </StackPanel>
+            <TextBlock x:Name="NoteText" Text="Note" TextAlignment="Left" LineHeight="20" Margin="0,30,0,0"></TextBlock>
+            <TextBox Name="AnnotNoteText" FontSize="14" TextWrapping="Wrap" BorderBrush="#E2E3E6" Width="232" Height="96" Margin="0,10,0,0"  AcceptsReturn="True">
+            </TextBox>
+        </StackPanel>
     </Grid>
 </UserControl>

+ 15 - 0
PDF Office/Views/PropertyPanel/AnnotPanel/TextAnnotProperty.xaml.cs

@@ -28,6 +28,21 @@ namespace PDF_Office.Views.PropertyPanel.AnnotPanel
         {
             InitializeComponent();
         }
+
+        private void OpacitySlider_DragStarted(object sender, System.Windows.Controls.Primitives.DragStartedEventArgs e)
+        {
+
+        }
+
+        private void OpacitySlider_DragCompleted(object sender, System.Windows.Controls.Primitives.DragCompletedEventArgs e)
+        {
+
+        }
+
+        private void OpacitySlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
+        {
+
+        }
     }
     //public partial class TextAnnotProperty : UserControl
     //{

+ 5 - 5
PDF Office/Views/PropertyPanel/PropertyPanelContent.xaml

@@ -15,12 +15,12 @@
     </UserControl.Resources>
     <Grid >
         <Grid x:Name="GridAnnot">
-            <AnnotPanel:TextAnnotProperty x:Name="textAnnotProperty"  Visibility="{Binding AnnotPanelType,ConverterParameter=HighLight, Converter={StaticResource PropertyPanelVisible}}"/>
-            <!--<AnnotPanel:FreetextAnnotProperty  x:Name="freetextAnnotProperty" Visibility="{Binding AnnotPanelType,ConverterParameter=Freetext,Converter={StaticResource PropertyPanelVisible}}"/>
-            <AnnotPanel:SharpsAnnotProperty  x:Name="sharpsAnnotProperty" Visibility="{Binding AnnotPanelType,ConverterParameter=HighLight,Converter={StaticResource PropertyPanelVisible}}"/>
-            <AnnotPanel:StampAnnotProperty  x:Name="stampAnnotProperty" Visibility="{Binding AnnotPanelType,ConverterParameter=HighLight,Converter={StaticResource PropertyPanelVisible}}"/>
+            <!--<AnnotPanel:TextAnnotProperty x:Name="textAnnotProperty"  Visibility="{Binding AnnotPanelType,ConverterParameter=HighLight, Converter={StaticResource PropertyPanelVisible}}"/>
+            <AnnotPanel:FreetextAnnotProperty  x:Name="freetextAnnotProperty" Visibility="{Binding AnnotPanelType,ConverterParameter=Freetext,Converter={StaticResource PropertyPanelVisible}}"/>
+            <AnnotPanel:SharpsAnnotProperty  x:Name="sharpsAnnotProperty" Visibility="{Binding AnnotPanelType,ConverterParameter=HighLight,Converter={StaticResource PropertyPanelVisible}}"/>-->
+            <!--<AnnotPanel:StampAnnotProperty  x:Name="stampAnnotProperty" Visibility="{Binding AnnotPanelType,ConverterParameter=HighLight,Converter={StaticResource PropertyPanelVisible}}"/>-->
             <AnnotPanel:FreehandAnnotProperty  x:Name="freehandAnnotProperty" Visibility="{Binding AnnotPanelType,ConverterParameter=HighLight,Converter={StaticResource PropertyPanelVisible}}"/>
-            <AnnotPanel:ImageAnnotProperty  x:Name="imageAnnotProperty" Visibility="{Binding AnnotPanelType,ConverterParameter=HighLight,Converter={StaticResource PropertyPanelVisible}}"/>
+            <!--<AnnotPanel:ImageAnnotProperty  x:Name="imageAnnotProperty" Visibility="{Binding AnnotPanelType,ConverterParameter=HighLight,Converter={StaticResource PropertyPanelVisible}}"/>
             <AnnotPanel:LinkAnnotProperty  x:Name="linkAnnotProperty" Visibility="{Binding AnnotPanelType,ConverterParameter=HighLight,Converter={StaticResource PropertyPanelVisible}}"/>-->
 
         </Grid>