Bläddra i källkod

ComPDFKit(win) - 注释列表UI调整

liuaoran 7 månader sedan
förälder
incheckning
cc11f249b1

+ 33 - 7
Demo/Examples/Compdfkit.Controls/Annotation/PDFAnnotationList/PDFAnnotationListUI/AnnotationReplyListControl.xaml

@@ -16,10 +16,11 @@
             <common:TextLengthToVisibilityConverter x:Key="TextLengthToVisibilityConverter"></common:TextLengthToVisibilityConverter>
             <common:SubtractionConverter x:Key="SubtractionConverter"></common:SubtractionConverter>
             <common:AntiVisibilityConverter x:Key="AntiVisibilityConverter"></common:AntiVisibilityConverter>
+            <common:BoolToVisibleConverter x:Key="BoolToVisibleConverter"></common:BoolToVisibleConverter>
             <common:BotaResourceConverter x:Key="BotaResourceConverter"></common:BotaResourceConverter>
         </ResourceDictionary>
     </UserControl.Resources>
-    <Grid x:Name="ReplyGrid" Margin="5">
+    <Grid x:Name="ReplyGrid" Margin="0">
         <Grid.RowDefinitions>
             <RowDefinition Height="0"></RowDefinition>
             <RowDefinition Height="0"></RowDefinition>
@@ -32,23 +33,48 @@
                       Visibility="{Binding ElementName=InputTxb, Path=Text, Converter={StaticResource TextLengthToVisibilityConverter}}"></TextBlock>
         </Grid>
 
-        <StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,5,0,0">
+        <StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right">
             <Button Content="{Binding Converter={StaticResource BotaResourceConverter},ConverterParameter=Button_Cancel}" Background="Transparent" BorderThickness="0" Margin="0,0,5,0" Width="56" Height="30" Click="ButtonCancel_Click"></Button>
             <Button Content="{Binding Converter={StaticResource BotaResourceConverter},ConverterParameter=Button_Reply}" Width="56" Height="30" Foreground="White" Background="#1460F3" BorderThickness="0" Click="ReplyButton_Click"></Button>
         </StackPanel>
 
-        <ListView Grid.Row="2" x:Name="ReplyList" Margin="0,5,0,0" VirtualizingPanel.IsVirtualizingWhenGrouping="True" 
-                 ScrollViewer.HorizontalScrollBarVisibility="Hidden" BorderThickness="0" SelectionMode="Single" >
+        <ListView Grid.Row="2" x:Name="ReplyList" Margin="0,0,0,0" VirtualizingPanel.IsVirtualizingWhenGrouping="True" 
+                 ScrollViewer.HorizontalScrollBarVisibility="Hidden" BorderThickness="0" SelectionMode="Single" 
+                   Visibility="{Binding ElementName=ReplyList, Path=HasItems, Converter={StaticResource BoolToVisibleConverter}}">
             <ListView.ItemsPanel>
                 <ItemsPanelTemplate>
                     <VirtualizingStackPanel Background="#FAFCFF" HorizontalAlignment="Stretch" MaxHeight="200"
                                            Width="{Binding ActualWidth, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListView}, Converter={StaticResource SubtractionConverter}, ConverterParameter=5}"></VirtualizingStackPanel>
                 </ItemsPanelTemplate>
             </ListView.ItemsPanel>
-
+            <ListView.ItemContainerStyle>
+                <Style TargetType="ListViewItem">
+                    <Setter Property="Template">
+                        <Setter.Value>
+                            <ControlTemplate TargetType="ListViewItem">
+                                <ContentPresenter />
+                            </ControlTemplate>
+                        </Setter.Value>
+                    </Setter>
+                    <Setter Property="MinHeight" Value="0" />
+                    <Setter Property="Height" Value="Auto" /> 
+                </Style>
+            </ListView.ItemContainerStyle>
             <ListView.ItemTemplate>
-                <ItemContainerTemplate>
-                    <Grid Width="{Binding ActualWidth, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListView}, Converter={StaticResource SubtractionConverter}, ConverterParameter=30}">
+                <ItemContainerTemplate> 
+                    <Grid>
+                        <Grid.Style>
+                            <Style TargetType="Grid"> 
+                                <Style.Triggers>
+                                    <Trigger Property="IsMouseOver" Value="True">
+                                        <Setter Property="Background" Value="#D0D9E1"/> 
+                                    </Trigger>
+                                    <DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType=ListViewItem}}" Value="True">
+                                        <Setter Property="Background" Value="#D0D9E1"/> 
+                                    </DataTrigger>
+                                </Style.Triggers>
+                            </Style>
+                        </Grid.Style>
                         <Grid.RowDefinitions>
                             <RowDefinition Height="Auto"/>
                             <RowDefinition Height="Auto"/>

+ 34 - 5
Demo/Examples/Compdfkit.Controls/Annotation/PDFAnnotationList/PDFAnnotationListUI/CPDFAnnotationListUI.xaml

@@ -47,10 +47,39 @@
                                             Width="{Binding ActualWidth, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListView}, Converter={StaticResource SubtractionConverter}, ConverterParameter=5}"></VirtualizingStackPanel>
                 </ItemsPanelTemplate>
             </ListView.ItemsPanel>
-
+            
+            <ListView.ItemContainerStyle>
+                <Style TargetType="ListViewItem">
+                    <Setter Property="Template">
+                        <Setter.Value>
+                            <ControlTemplate TargetType="ListViewItem">
+                                <ContentPresenter />
+                            </ControlTemplate>
+                        </Setter.Value>
+                    </Setter>
+                    <Setter Property="MinHeight" Value="0" />
+                    <Setter Property="Height" Value="Auto" /> 
+                </Style> 
+            </ListView.ItemContainerStyle>
+            
             <ListView.ItemTemplate>
                 <ItemContainerTemplate>
-                    <Grid Margin="0,0,5,5" Visibility = "{Binding BindProperty.IsAnnotListVisible}">
+                    <Grid Margin="0,0,10,2" Visibility = "{Binding BindProperty.IsAnnotListVisible}">
+                        <Grid.Style>
+                            <Style TargetType="Grid">  
+                                <Setter Property="Background" Value="#1A000000"/>
+                                <Style.Triggers>
+                                    <Trigger Property="IsMouseOver" Value="True">
+                                        <Setter Property="Background" Value="LightGray"/>
+                                        <!-- You can set this to any color you prefer -->
+                                    </Trigger>
+                                    <DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType=ListViewItem}}" Value="True">
+                                        <Setter Property="Background" Value="#3A000000"/>
+                                        <!-- Color when selected -->
+                                    </DataTrigger>
+                                </Style.Triggers>
+                            </Style>
+                        </Grid.Style>
                         <Grid.RowDefinitions>
                             <RowDefinition></RowDefinition>
                             <RowDefinition Height="Auto"></RowDefinition>
@@ -58,7 +87,7 @@
                             <RowDefinition Height="Auto"></RowDefinition>
                             <RowDefinition Height="Auto"></RowDefinition>
                         </Grid.RowDefinitions>
-                        <Grid Grid.Row="0" Name="AnnotGrid">
+                        <Grid Grid.Row="0" Name="AnnotGrid" Margin="10,5,0,0">
                             <Grid.ColumnDefinitions>
                                 <ColumnDefinition Width="20"></ColumnDefinition>
                                 <ColumnDefinition Width="*"></ColumnDefinition>
@@ -159,9 +188,9 @@
                                 </CheckBox>
                             </Grid>
                         </Grid>
-                        <TextBox Text="{Binding BindProperty.Note, Mode=OneWay}"  Grid.Row="1" TextWrapping="Wrap" AcceptsReturn="True" IsHitTestVisible="False" Background="Transparent" BorderThickness="0" Width="{Binding ElementName=AnnotationList,Path=ActualWidth}" Padding="16,6,16,6" FontFamily="Microsoft YaHei" FontSize="14px"></TextBox>
+                        <TextBox Text="{Binding BindProperty.Note, Mode=OneWay}"  Grid.Row="1" TextWrapping="Wrap" AcceptsReturn="True" IsHitTestVisible="False" Background="Transparent" BorderThickness="0" Width="{Binding ElementName=AnnotationList,Path=ActualWidth}" Padding="16,6,26,6" FontFamily="Microsoft YaHei" FontSize="14px"></TextBox>
                         <pdfControlUi:AnnotationReplyListControl x:Name="ReplyListControl" Grid.Row="2" ReplyListSource="{Binding BindProperty.ReplyList}"
-                                                                 IsShowList="{Binding IsReplyListVisible}" IsShowInput="{Binding IsReplyInputVisible,Mode=TwoWay}"></pdfControlUi:AnnotationReplyListControl>
+                                                                 IsShowList="{Binding IsReplyListVisible}" IsShowInput="{Binding IsReplyInputVisible,Mode=TwoWay}" Margin="10" Padding="0"></pdfControlUi:AnnotationReplyListControl>
                         <Grid Grid.Row="3">
                             <Grid.ColumnDefinitions>
                                 <ColumnDefinition Width="50"></ColumnDefinition>

+ 4 - 0
Demo/Examples/Compdfkit.Controls/Annotation/PDFAnnotationList/PDFAnnotationListUI/CPDFAnnotationListUI.xaml.cs

@@ -49,6 +49,10 @@ namespace ComPDFKit.Controls.PDFControlUI
             if (parameter is AnnotationBindData data)
             {
                 data.IsReplyInputVisible = !data.IsReplyInputVisible;
+                if(data.IsReplyInputVisible)
+                {
+                    data.IsReplyListVisible = true;
+                }
             }
         }
     }

+ 6 - 1
Demo/Examples/Compdfkit.Controls/Annotation/PDFAnnotationList/PDFAnnotationListUI/ReplyStatusControl.xaml

@@ -57,7 +57,12 @@
             <Menu Background="Transparent">
                 <local:PathMenuItem x:Name="IconMenu" Height="30" Width="30" Margin="0" Padding="0">
                     <local:PathMenuItem.Header>
-                        <Grid x:Name="ButtonIcon" Height="30" Width="30"></Grid>
+                        <Grid x:Name="ButtonIcon" Height="30" Width="30">
+                            <Canvas Height="20" Width="20"> 
+                                <Rectangle Stroke="#5A000000" StrokeThickness="2" Width="16" Height="16"/>
+                                <Line X1="1" Y1="1" X2="15" Y2="15" Stroke="#5A000000" StrokeThickness="2"/>
+                            </Canvas>
+                        </Grid>
                     </local:PathMenuItem.Header>
                 </local:PathMenuItem>
             </Menu>

+ 18 - 8
Demo/Examples/Compdfkit.Controls/Annotation/PDFAnnotationList/PDFAnnotationListUI/ReplyStatusControl.xaml.cs

@@ -1,10 +1,10 @@
 using ComPDFKit.PDFAnnotation;
 using System;
-using System.Collections.Generic; 
+using System.Collections.Generic;
 using System.Windows;
-using System.Windows.Controls; 
-using System.Windows.Media; 
-using System.Windows.Shapes; 
+using System.Windows.Controls;
+using System.Windows.Media;
+using System.Windows.Shapes;
 
 namespace ComPDFKit.Controls.PDFControlUI
 {
@@ -67,7 +67,10 @@ namespace ComPDFKit.Controls.PDFControlUI
                     Header = "Cancelled",
                     IconPath = new Path
                     {
-                        Data = Geometry.Parse("M2 2H13.5V13.5H2V2ZM0.5 0.5H2H13.5H15V2V13.5V15H13.5H2H0.5V13.5V2V0.5ZM5.56066 4.5L6.09099 5.03033L8.00165 6.94099L9.91231 5.03033L10.4426 4.5L11.5033 5.56066L10.973 6.09099L9.06231 8.00165L10.973 9.91232L11.5033 10.4426L10.4426 11.5033L9.91231 10.973L8.00165 9.06231L6.09099 10.973L5.56066 11.5033L4.5 10.4426L5.03033 9.91232L6.94099 8.00165L5.03033 6.09099L4.5 5.56066L5.56066 4.5Z"),
+                        Data = Geometry.Parse("M2 2 H16 V16 H2 V2 M4 4 L14 14 M14 4 L4 14"),
+                        Stroke = Brushes.Black,
+                        StrokeThickness = 1,
+                        Fill = Brushes.Transparent
                     },
                     Tag = CPDFAnnotationState.C_ANNOTATION_CANCELLED
                 },
@@ -76,19 +79,26 @@ namespace ComPDFKit.Controls.PDFControlUI
                     Header = "Completed",
                     IconPath = new Path
                     {
-                        Data = Geometry.Parse("M2 2H13.5V13.5H2V2ZM0.5 0.5H2H13.5H15V2V13.5V15H13.5H2H0.5V13.5V2V0.5ZM11.6441 6.40148L12.1745 5.87115L11.1138 4.81049L10.5835 5.34082L6.87115 9.05313L5.53033 7.71231L5 7.18198L3.93934 8.24264L4.46967 8.77297L6.34082 10.6441L6.87115 11.1745L7.40148 10.6441L11.6441 6.40148Z"),
+                        Data = Geometry.Parse("M2 2 H16 V16 H2 V2 M5 9 L8 12 L14 6"),
+                        Stroke = Brushes.Black, 
+                        StrokeThickness = 1, 
+                        Fill = Brushes.Transparent 
                     },
                     Tag = CPDFAnnotationState.C_ANNOTATION_COMPLETED
                 },
+
                 new PathMenuItem
                 {
                     Header = "None",
                     IconPath = new Path
                     {
-                        Data = Geometry.Parse("M2 2H13.5V13.5H2V2ZM0.5 0.5H2H13.5H15V2V13.5V15H13.5H2H0.5V13.5V2V0.5ZM5 7.25H4.25V8.75H5H11H11.75V7.25H11H5Z"),
+                        Data = Geometry.Parse("M2 2 H16 V16 H2 V2 M5 9 H13"),
+                        Stroke = Brushes.Black,  
+                        StrokeThickness = 1, 
+                        Fill = Brushes.Transparent 
                     },
                     Tag = CPDFAnnotationState.C_ANNOTATION_NONE
-                }
+                }, 
             };
 
             Style style = FindResource("MenuItemStyle") as Style;