Listview.xaml 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. <ResourceDictionary
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6. mc:Ignorable="d">
  7. <SolidColorBrush x:Key="Listview_Header_BD" Color="#FF253C58"/>
  8. <SolidColorBrush x:Key="Listview_Header_FG" Color="White"/>
  9. <SolidColorBrush x:Key="Listview_Header_BG_Mouseover" Color="#FF57A3D4"/>
  10. <SolidColorBrush x:Key="Listview_Header_BD_Highlight" Color="#FFB3B9D1"/>
  11. <SolidColorBrush x:Key="Listview_FG_Highlight" Color="#FF233863"/>
  12. <SolidColorBrush x:Key="Listview_BG_Highlight" Color="#FF3399FF"/>
  13. <SolidColorBrush x:Key="Listview_BG_First" Color="#FFEEEEEE"/>
  14. <SolidColorBrush x:Key="Listview_BG_Second" Color="#FFDEDEDE"/>
  15. <SolidColorBrush x:Key="Listview_Header_BG" Color="#FF2F457F"/>
  16. <SolidColorBrush x:Key="Listview_Content_BD" Color="#FF999999"/>
  17. <!-- Listview ColumnHeader ControlTemplate -->
  18. <Style TargetType="{x:Type GridViewColumnHeader}">
  19. <Setter Property="FontFamily" Value="Arial"/>
  20. <Setter Property="Foreground" Value="{DynamicResource Listview_Header_FG}"/>
  21. <Setter Property="FontSize" Value="14"/>
  22. <Setter Property="MinHeight" Value="24"/>
  23. <Setter Property="IsHitTestVisible" Value="False"/>
  24. <Setter Property="Template">
  25. <Setter.Value>
  26. <ControlTemplate TargetType="{x:Type GridViewColumnHeader}">
  27. <Border x:Name="BG" BorderBrush="{DynamicResource Listview_Header_BD_Highlight}" BorderThickness="1,1,0,0" Background="{DynamicResource Listview_Header_BG}" Cursor="Hand">
  28. <Border x:Name="Inner_BD" SnapsToDevicePixels="true" BorderBrush="{DynamicResource Listview_Header_BD}" BorderThickness="0,0,1,0">
  29. <Grid>
  30. <ContentPresenter x:Name="HeaderContent" Margin="5,1" VerticalAlignment="Center" HorizontalAlignment="Center" SnapsToDevicePixels="True" RecognizesAccessKey="True">
  31. </ContentPresenter>
  32. <Thumb x:Name="PART_HeaderGripper" Width="8" HorizontalAlignment="Right" Style="{DynamicResource Thumb-ListViewItem}" Margin="0,0,-4,0"/>
  33. </Grid>
  34. </Border>
  35. </Border>
  36. <ControlTemplate.Triggers>
  37. <Trigger Property="IsMouseOver" Value="True">
  38. <Setter Property="Background" TargetName="BG" Value="{DynamicResource Listview_Header_BG_Mouseover}"/>
  39. <Setter Property="Foreground" Value="{DynamicResource Listview_FG_Highlight}"/>
  40. </Trigger>
  41. </ControlTemplate.Triggers>
  42. </ControlTemplate>
  43. </Setter.Value>
  44. </Setter>
  45. </Style>
  46. <Style x:Key="OnlyGripper_GridViewColumnHeader" TargetType="{x:Type GridViewColumnHeader}">
  47. <Setter Property="MinHeight" Value="24"/>
  48. <Setter Property="Template">
  49. <Setter.Value>
  50. <ControlTemplate TargetType="{x:Type GridViewColumnHeader}">
  51. <Grid x:Name="Grid" SnapsToDevicePixels="true">
  52. <ContentPresenter x:Name="OnlyGripper_HeaderContent" Margin="5,0" VerticalAlignment="Center" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" RecognizesAccessKey="True"/>
  53. <Thumb Width="10" HorizontalAlignment="Right" Style="{DynamicResource Thumb-ListViewItem}" Margin="-5,0"/>
  54. </Grid>
  55. </ControlTemplate>
  56. </Setter.Value>
  57. </Setter>
  58. </Style>
  59. <!-- listview Item Style -->
  60. <Style TargetType="{x:Type ListViewItem}">
  61. <Setter Property="Background" Value="Transparent"/>
  62. <Setter Property="Foreground" Value="Black"/>
  63. <Setter Property="FontSize" Value="14"/>
  64. <Setter Property="TextBlock.TextAlignment" Value="Left"/>
  65. <Setter Property="MinHeight" Value="24"/>
  66. <Setter Property="MinWidth" Value="50"/>
  67. <Setter Property="Template">
  68. <Setter.Value>
  69. <ControlTemplate TargetType="{x:Type ListViewItem}">
  70. <Border x:Name="BG" Background="{TemplateBinding Background}" BorderThickness="0,0,0,1" BorderBrush="Gray" SnapsToDevicePixels="True" Cursor="Hand">
  71. <Grid>
  72. <Border x:Name="Highlight" BorderBrush="Black" BorderThickness="0" Background="{DynamicResource Listview_BG_Highlight}" Opacity="0"/>
  73. <GridViewRowPresenter Content="{TemplateBinding Content}" Columns="{TemplateBinding GridView.ColumnCollection}"/>
  74. </Grid>
  75. </Border>
  76. <ControlTemplate.Triggers>
  77. <Trigger Property="IsSelected" Value="True">
  78. <Setter Property="Opacity" TargetName="Highlight" Value="1"/>
  79. <Setter Property="BorderThickness" TargetName="Highlight" Value="1"/>
  80. <Setter Property="Foreground" Value="White"/>
  81. <Setter Property="Margin" TargetName="Highlight" Value="0,-1"/>
  82. </Trigger>
  83. <!--<Trigger Property="IsMouseOver" Value="True">
  84. <Setter Property="Opacity" TargetName="Highlight" Value="0.8"/>
  85. </Trigger>-->
  86. </ControlTemplate.Triggers>
  87. </ControlTemplate>
  88. </Setter.Value>
  89. </Setter>
  90. <Style.Triggers>
  91. <Trigger Property="ListView.AlternationIndex" Value="0">
  92. <Setter Property="Background" Value="{DynamicResource Listview_BG_First}"/>
  93. </Trigger>
  94. <Trigger Property="ListView.AlternationIndex" Value="1">
  95. <Setter Property="Background" Value="{DynamicResource Listview_BG_Second}"/>
  96. </Trigger>
  97. </Style.Triggers>
  98. </Style>
  99. <Style x:Key="ListViewItemBase" TargetType="{x:Type ListViewItem}">
  100. <Setter Property="Background" Value="Transparent"/>
  101. <Setter Property="Foreground" Value="Black"/>
  102. <Setter Property="FontSize" Value="14"/>
  103. <Setter Property="TextBlock.TextAlignment" Value="Left"/>
  104. <Setter Property="MinHeight" Value="24"/>
  105. <Setter Property="MinWidth" Value="50"/>
  106. <Setter Property="Template">
  107. <Setter.Value>
  108. <ControlTemplate TargetType="{x:Type ListViewItem}">
  109. <Border x:Name="BG" Background="{TemplateBinding Background}" BorderThickness="0,0,0,1" BorderBrush="Gray" SnapsToDevicePixels="True" Cursor="Hand">
  110. <Grid>
  111. <Border x:Name="Highlight" BorderBrush="Black" BorderThickness="0" Background="{DynamicResource Listview_BG_Highlight}" Opacity="0"/>
  112. <GridViewRowPresenter Content="{TemplateBinding Content}" Columns="{TemplateBinding GridView.ColumnCollection}"/>
  113. </Grid>
  114. </Border>
  115. <ControlTemplate.Triggers>
  116. <Trigger Property="IsSelected" Value="True">
  117. <Setter Property="Opacity" TargetName="Highlight" Value="1"/>
  118. <Setter Property="BorderThickness" TargetName="Highlight" Value="1"/>
  119. <Setter Property="Foreground" Value="White"/>
  120. <Setter Property="Margin" TargetName="Highlight" Value="0,-1"/>
  121. </Trigger>
  122. <!--<Trigger Property="IsMouseOver" Value="True">
  123. <Setter Property="Opacity" TargetName="Highlight" Value="0.8"/>
  124. </Trigger>-->
  125. </ControlTemplate.Triggers>
  126. </ControlTemplate>
  127. </Setter.Value>
  128. </Setter>
  129. <Style.Triggers>
  130. <Trigger Property="ListView.AlternationIndex" Value="0">
  131. <Setter Property="Background" Value="{DynamicResource Listview_BG_First}"/>
  132. </Trigger>
  133. <Trigger Property="ListView.AlternationIndex" Value="1">
  134. <Setter Property="Background" Value="{DynamicResource Listview_BG_Second}"/>
  135. </Trigger>
  136. </Style.Triggers>
  137. </Style>
  138. <!-- listview Style -->
  139. <Style x:Key="ListView-ScrollViewer" TargetType="{x:Type ScrollViewer}">
  140. <Setter Property="SnapsToDevicePixels" Value="True"/>
  141. <Setter Property="CanContentScroll" Value="False"/>
  142. <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
  143. <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
  144. <Setter Property="Template">
  145. <Setter.Value>
  146. <ControlTemplate TargetType="{x:Type ScrollViewer}">
  147. <Grid>
  148. <Grid.ColumnDefinitions>
  149. <ColumnDefinition Width="*"/>
  150. <ColumnDefinition Width="Auto"/>
  151. </Grid.ColumnDefinitions>
  152. <Grid.RowDefinitions>
  153. <RowDefinition Height="Auto"/>
  154. <RowDefinition Height="*"/>
  155. <RowDefinition Height="Auto"/>
  156. </Grid.RowDefinitions>
  157. <Grid>
  158. <Border x:Name ="TopBG" MinHeight="24" BorderBrush="{DynamicResource Listview_Header_BD}" BorderThickness="1" Background="{DynamicResource Listview_Header_BG}"/>
  159. <ScrollViewer Focusable="False" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden">
  160. <ScrollViewer.LayoutTransform>
  161. <TransformGroup>
  162. <ScaleTransform/>
  163. <SkewTransform/>
  164. <RotateTransform/>
  165. <TranslateTransform/>
  166. </TransformGroup>
  167. </ScrollViewer.LayoutTransform>
  168. <GridViewHeaderRowPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
  169. AllowsColumnReorder="{Binding TemplatedParent.View.AllowsColumnReorder, RelativeSource={RelativeSource TemplatedParent}}"
  170. ColumnHeaderContainerStyle="{Binding TemplatedParent.View.ColumnHeaderContainerStyle, RelativeSource={RelativeSource TemplatedParent}}"
  171. ColumnHeaderContextMenu="{Binding TemplatedParent.View.ColumnHeaderContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
  172. ColumnHeaderTemplate="{Binding TemplatedParent.View.ColumnHeaderTemplate, RelativeSource={RelativeSource TemplatedParent}}"
  173. ColumnHeaderToolTip="{Binding TemplatedParent.View.ColumnHeaderToolTip, RelativeSource={RelativeSource TemplatedParent}}"
  174. Columns="{Binding TemplatedParent.View.Columns, RelativeSource={RelativeSource TemplatedParent}}"/>
  175. </ScrollViewer>
  176. </Grid>
  177. <Grid Grid.Row="1">
  178. <Border BorderThickness="1,0,1,1" Background="{DynamicResource Listview_BG_First}" BorderBrush="{DynamicResource Listview_Content_BD}">
  179. <ScrollContentPresenter Name="PART_ScrollContentPresenter"
  180. CanContentScroll="{TemplateBinding CanContentScroll}"
  181. KeyboardNavigation.DirectionalNavigation="Local"
  182. CanHorizontallyScroll="False"
  183. CanVerticallyScroll="False"
  184. ContentTemplate="{TemplateBinding ContentTemplate}"
  185. Content="{TemplateBinding Content}"/>
  186. </Border>
  187. </Grid>
  188. <ScrollBar x:Name="PART_HorizontalScrollBar" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Grid.Column="0" Grid.Row="2" ViewportSize="{TemplateBinding ViewportWidth}" Maximum="{TemplateBinding ScrollableWidth}" Minimum="0" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" Orientation="Horizontal"/>
  189. <ScrollBar x:Name="PART_VerticalScrollBar" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Grid.Column="1" Grid.RowSpan="2" Grid.Row="0" ViewportSize="{TemplateBinding ViewportHeight}" Maximum="{TemplateBinding ScrollableHeight}" Minimum="0" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" MinWidth="0"/>
  190. <DockPanel Grid.Column="1" Grid.Row="2" LastChildFill="False"/>
  191. </Grid>
  192. </ControlTemplate>
  193. </Setter.Value>
  194. </Setter>
  195. </Style>
  196. <Style x:Key="Thumb-ListViewItem" TargetType="{x:Type Thumb}">
  197. <Setter Property="Width" Value="8"/>
  198. <Setter Property="Template">
  199. <Setter.Value>
  200. <ControlTemplate TargetType="{x:Type Thumb}">
  201. <Border Padding="{TemplateBinding Padding}" Background="Transparent">
  202. <Rectangle HorizontalAlignment="Center" Width="1" Opacity="1" />
  203. </Border>
  204. </ControlTemplate>
  205. </Setter.Value>
  206. </Setter>
  207. </Style>
  208. <Style TargetType="{x:Type ListView}">
  209. <Setter Property="SnapsToDevicePixels" Value="True"/>
  210. <Setter Property="OverridesDefaultStyle" Value="True"/>
  211. <Setter Property="AllowDrop" Value="False"/>
  212. <Setter Property="Template">
  213. <Setter.Value>
  214. <ControlTemplate TargetType="{x:Type ListView}">
  215. <Border Name="Border">
  216. <ScrollViewer Style="{DynamicResource ListView-ScrollViewer}">
  217. <ItemsPresenter Grid.Row="0"/>
  218. </ScrollViewer>
  219. </Border>
  220. </ControlTemplate>
  221. </Setter.Value>
  222. </Setter>
  223. </Style>
  224. </ResourceDictionary>