BookmarkContent.xaml 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <UserControl
  2. x:Class="PDF_Office.Views.BOTA.BookmarkContent"
  3. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5. xmlns:bota="clr-namespace:PDF_Office.ViewModels.BOTA"
  6. xmlns:convert="clr-namespace:PDF_Office.DataConvert"
  7. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  8. xmlns:data="clr-namespace:ComPDFKit.PDFDocument;assembly=ComPDFKit.Desk"
  9. xmlns:helper="clr-namespace:PDF_Office.Helper"
  10. xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
  11. xmlns:local="clr-namespace:PDF_Office.Views.BOTA"
  12. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  13. xmlns:prism="http://prismlibrary.com/"
  14. d:DataContext="{d:DesignInstance Type=bota:BookmarkContentViewModel}"
  15. d:DesignHeight="450"
  16. d:DesignWidth="300"
  17. prism:ViewModelLocator.AutoWireViewModel="True"
  18. mc:Ignorable="d">
  19. <UserControl.Resources>
  20. <ResourceDictionary>
  21. <ResourceDictionary.MergedDictionaries>
  22. <ResourceDictionary Source="pack://application:,,,/Styles/ListViewStyle.xaml" />
  23. </ResourceDictionary.MergedDictionaries>
  24. <convert:BoolToVisible x:Key="BoolToVisibleConvert" />
  25. <convert:UnVisivleConvert x:Key="UnVisivleConvert" />
  26. <convert:ObjectConvert x:Key="ObjectConvert" />
  27. <DataTemplate x:Key="myDataTemplate" DataType="{x:Type data:CPDFBookmark}">
  28. <StackPanel
  29. Name="StackPanel"
  30. HorizontalAlignment="Stretch"
  31. VerticalAlignment="Stretch">
  32. <Grid Name="Grid" Margin="15,5">
  33. <Grid.ColumnDefinitions>
  34. <ColumnDefinition Width="10*" />
  35. <ColumnDefinition Width="90*" />
  36. </Grid.ColumnDefinitions>
  37. <Image
  38. Grid.Column="0"
  39. Width="16"
  40. Height="16"
  41. Source="pack://application:,,,/Resources/BOTA/empty_bookmark.png" />
  42. <TextBox
  43. Name="TxtTitleInput"
  44. Grid.Column="1"
  45. Padding="5"
  46. HorizontalContentAlignment="Left"
  47. Background="White"
  48. BorderThickness="1"
  49. FontSize="14"
  50. Text="{Binding Title}"
  51. TextWrapping="Wrap">
  52. <i:Interaction.Triggers>
  53. <i:EventTrigger EventName="KeyDown">
  54. <i:InvokeCommandAction Command="{Binding DataContext.KeyDownCommand, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" PassEventArgsToCommand="True" />
  55. </i:EventTrigger>
  56. </i:Interaction.Triggers>
  57. </TextBox>
  58. <TextBlock
  59. Name="TxbTitle"
  60. Grid.Column="1"
  61. Padding="5"
  62. Background="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListBoxItem}}, Path=Background}"
  63. FontSize="14"
  64. Text="{Binding Title}"
  65. Visibility="Visible" />
  66. </Grid>
  67. </StackPanel>
  68. </DataTemplate>
  69. <ContextMenu
  70. x:Key="ContextMenu"
  71. DataContext="{Binding PlacementTarget.Tag, RelativeSource={RelativeSource Self}}"
  72. FontSize="14">
  73. <MenuItem
  74. Click="MenuItemRename_Click"
  75. CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}, Path=PlacementTarget.DataContext}"
  76. Header="重命名" />
  77. <MenuItem
  78. Command="{Binding DataContext.EditPageIndexCommand, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
  79. CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}, Path=PlacementTarget.DataContext}"
  80. Header="更改目标位置" />
  81. <MenuItem
  82. Click="MenuItemDeleteCommand_Click"
  83. CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}, Path=PlacementTarget.DataContext}"
  84. Header="删除" />
  85. </ContextMenu>
  86. </ResourceDictionary>
  87. </UserControl.Resources>
  88. <Grid Background="#F2F2F2">
  89. <Grid.RowDefinitions>
  90. <RowDefinition Height="40" />
  91. <RowDefinition />
  92. </Grid.RowDefinitions>
  93. <Grid MinWidth="190">
  94. <TextBlock
  95. x:Name="TxtTitle"
  96. Margin="12,0,0,0"
  97. HorizontalAlignment="Left"
  98. VerticalAlignment="Center"
  99. FontSize="18"
  100. FontWeight="SemiBold"
  101. Text="Bookmarks" />
  102. <Button
  103. Name="BtnAddBookmark"
  104. Width="40"
  105. Height="40"
  106. Margin="0,0,0,0"
  107. HorizontalAlignment="Right"
  108. Command="{Binding AddBookmarkCommand}"
  109. CommandParameter="{Binding ElementName=BookMarkListView}"
  110. Content="添加" />
  111. </Grid>
  112. <Grid Grid.Row="1">
  113. <ListView
  114. Name="BookMarkListView"
  115. HorizontalContentAlignment="Stretch"
  116. Background="#F2F2F2"
  117. BorderThickness="0"
  118. ItemTemplate="{StaticResource myDataTemplate}"
  119. ItemsSource="{Binding Bookmarklist}"
  120. PreviewMouseDown="BookMarkListView_PreviewMouseDown"
  121. ScrollViewer.HorizontalScrollBarVisibility="Disabled"
  122. VirtualizingPanel.CacheLength="1"
  123. VirtualizingPanel.CacheLengthUnit="Page"
  124. VirtualizingPanel.IsVirtualizing="True"
  125. VirtualizingPanel.ScrollUnit="Pixel">
  126. <ListView.ItemsPanel>
  127. <ItemsPanelTemplate>
  128. <VirtualizingStackPanel Margin="-5,0,0,0" Background="Transparent" />
  129. </ItemsPanelTemplate>
  130. </ListView.ItemsPanel>
  131. <ListView.ItemContainerStyle>
  132. <Style BasedOn="{StaticResource ListViewItemGraySelectStyle}" TargetType="ListViewItem">
  133. <EventSetter Event="PreviewMouseDown" Handler="ListViewItem_MouseLeftButtonDown" />
  134. <EventSetter Event="LostFocus" Handler="ListViewItem_LostFocus" />
  135. <Setter Property="ContextMenu" Value="{StaticResource ContextMenu}" />
  136. </Style>
  137. </ListView.ItemContainerStyle>
  138. </ListView>
  139. </Grid>
  140. <StackPanel
  141. Name="EmptyPanel"
  142. Grid.RowSpan="2"
  143. Width="150"
  144. VerticalAlignment="Center"
  145. Visibility="{Binding IsEmptyPanelVisibility}">
  146. <Image
  147. Width="140"
  148. Height="140"
  149. Source="pack://application:,,,/Resources/BOTA/empty_bookmark.png" />
  150. <TextBlock
  151. Name="txtEmpty"
  152. Margin="0,12,0,0"
  153. FontFamily="Segoe UI"
  154. FontSize="16"
  155. Text="No bookmark"
  156. TextAlignment="Center" />
  157. </StackPanel>
  158. </Grid>
  159. </UserControl>