Scrollbar.xaml 56 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042
  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="ScrollBar_BD" Color="#FF243664"/>
  8. <SolidColorBrush x:Key="ScrollBar_BG" Color="#FF396293"/>
  9. <SolidColorBrush x:Key="ScrollBar_InnerHighlight" Color="#FF9FCDED"/>
  10. <SolidColorBrush x:Key="ScrollBar_InnerShadow" Color="#FF003A62"/>
  11. <SolidColorBrush x:Key="ScrollBar_BG_MouseOver" Color="#FF227BB8"/>
  12. <SolidColorBrush x:Key="ScrollBar_ArrowBG" Color="White"/>
  13. <SolidColorBrush x:Key="ScrollBar_BD_Unable" Color="#FF868686"/>
  14. <LinearGradientBrush x:Key="ScrollBar_BG_Unable" EndPoint="0.5,1" StartPoint="0.5,0">
  15. <GradientStop Color="#FFB1B1B1" Offset="0"/>
  16. <GradientStop Color="#FFDADADA" Offset="1"/>
  17. </LinearGradientBrush>
  18. <SolidColorBrush x:Key="ScrollBar_InnerHighlight_Unable" Color="#FFD8D8D8"/>
  19. <SolidColorBrush x:Key="ScrollBar_InnerShadow_Unable" Color="#FF6C6C6C"/>
  20. <Style x:Key="ScrollBarLineButton" TargetType="{x:Type RepeatButton}">
  21. <Setter Property="SnapsToDevicePixels" Value="True"/>
  22. <Setter Property="OverridesDefaultStyle" Value="True"/>
  23. <Setter Property="BorderBrush" Value="{DynamicResource ScrollBar_BD}"/>
  24. <Setter Property="Background" Value="{DynamicResource ScrollBar_BG}"/>
  25. <Setter Property="Border.CornerRadius" Value="3"/>
  26. <Setter Property="Focusable" Value="false"/>
  27. <Setter Property="Template">
  28. <Setter.Value>
  29. <ControlTemplate TargetType="{x:Type RepeatButton}">
  30. <ControlTemplate.Resources>
  31. <Storyboard x:Key="OnMouseOver">
  32. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="HighLight">
  33. <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
  34. <SplineDoubleKeyFrame KeyTime="0:0:0.2" Value="1" KeySpline="0,0,1,0"/>
  35. </DoubleAnimationUsingKeyFrames>
  36. </Storyboard>
  37. <Storyboard x:Key="OnMouseOut">
  38. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="HighLight">
  39. <EasingDoubleKeyFrame KeyTime="0" Value="1"/>
  40. <SplineDoubleKeyFrame KeyTime="0:0:0.2" Value="0" KeySpline="0,0,0,1"/>
  41. </DoubleAnimationUsingKeyFrames>
  42. </Storyboard>
  43. </ControlTemplate.Resources>
  44. <Grid x:Name="BG" Cursor="Hand">
  45. <Border x:Name="OuterBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1" CornerRadius="{TemplateBinding Border.CornerRadius}" Background="{TemplateBinding Background}">
  46. <Border x:Name="InnerBD_Highlight" BorderThickness="1,1,0,0" BorderBrush="{DynamicResource ScrollBar_InnerHighlight}" CornerRadius="2">
  47. <Border x:Name="InnerBD_Shadow" BorderThickness="0,0,1,1" BorderBrush="{DynamicResource ScrollBar_InnerShadow}" CornerRadius="2"/>
  48. </Border>
  49. </Border>
  50. <Border x:Name="HighLight" Margin="2" Background="{DynamicResource SecondLevelBackground_BG}" CornerRadius="2" Opacity="0"/>
  51. <Path x:Name="path"
  52. HorizontalAlignment="Center"
  53. VerticalAlignment="Center"
  54. Data="{Binding Content, RelativeSource={RelativeSource TemplatedParent}}"
  55. Fill="{DynamicResource ScrollBar_ArrowBG}" >
  56. <Path.Effect>
  57. <DropShadowEffect BlurRadius="0" ShadowDepth="1"/>
  58. </Path.Effect>
  59. </Path>
  60. </Grid>
  61. <ControlTemplate.Triggers>
  62. <Trigger Property="IsMouseOver" Value="True">
  63. <Trigger.ExitActions>
  64. <BeginStoryboard x:Name="OnMouseOut_BeginStoryboard" Storyboard="{StaticResource OnMouseOut}"/>
  65. </Trigger.ExitActions>
  66. <Trigger.EnterActions>
  67. <BeginStoryboard Storyboard="{StaticResource OnMouseOver}"/>
  68. </Trigger.EnterActions>
  69. <Setter Property="Fill" TargetName="path" Value="#CCFFFFFF"/>
  70. <Setter Property="Effect" TargetName="path">
  71. <Setter.Value>
  72. <DropShadowEffect BlurRadius="0" ShadowDepth="2"/>
  73. </Setter.Value>
  74. </Setter>
  75. </Trigger>
  76. <Trigger Property="IsPressed" Value="true">
  77. <Setter Property="Opacity" TargetName="HighLight" Value="1"/>
  78. </Trigger>
  79. <Trigger Property="IsEnabled" Value="false">
  80. <Setter Property="Background" TargetName="OuterBorder" Value="{DynamicResource ScrollBar_BG_Unable}"/>
  81. <Setter Property="BorderBrush" TargetName="InnerBD_Highlight" Value="{DynamicResource ScrollBar_InnerHighlight_Unable}"/>
  82. <Setter Property="BorderBrush" TargetName="OuterBorder" Value="{DynamicResource ScrollBar_BD_Unable}"/>
  83. <Setter Property="BorderBrush" TargetName="InnerBD_Shadow" Value="{DynamicResource ScrollBar_InnerShadow_Unable}"/>
  84. <Setter Property="Fill" TargetName="path" Value="#FF999999"/>
  85. <Setter Property="Effect" TargetName="path">
  86. <Setter.Value>
  87. <DropShadowEffect BlurRadius="0" Opacity="0" ShadowDepth="1"/>
  88. </Setter.Value>
  89. </Setter>
  90. </Trigger>
  91. </ControlTemplate.Triggers>
  92. </ControlTemplate>
  93. </Setter.Value>
  94. </Setter>
  95. </Style>
  96. <Style x:Key="VerticalScrollBarPageButton" TargetType="{x:Type RepeatButton}">
  97. <Setter Property="OverridesDefaultStyle" Value="true"/>
  98. <Setter Property="Background" Value="Transparent"/>
  99. <Setter Property="Focusable" Value="false"/>
  100. <Setter Property="IsTabStop" Value="false"/>
  101. <Setter Property="Template">
  102. <Setter.Value>
  103. <ControlTemplate TargetType="{x:Type RepeatButton}">
  104. <Rectangle Fill="{TemplateBinding Background}" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}"/>
  105. </ControlTemplate>
  106. </Setter.Value>
  107. </Setter>
  108. </Style>
  109. <Style x:Key="HorizontalScrollBarPageButton" TargetType="{x:Type RepeatButton}">
  110. <Setter Property="OverridesDefaultStyle" Value="true"/>
  111. <Setter Property="Background" Value="Transparent"/>
  112. <Setter Property="Focusable" Value="false"/>
  113. <Setter Property="IsTabStop" Value="false"/>
  114. <Setter Property="Template">
  115. <Setter.Value>
  116. <ControlTemplate TargetType="{x:Type RepeatButton}">
  117. <Rectangle Fill="{TemplateBinding Background}" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}"/>
  118. </ControlTemplate>
  119. </Setter.Value>
  120. </Setter>
  121. </Style>
  122. <Style x:Key="ScrollBarVerticalThumb" TargetType="{x:Type Thumb}">
  123. <Setter Property="SnapsToDevicePixels" Value="True"/>
  124. <Setter Property="OverridesDefaultStyle" Value="true"/>
  125. <Setter Property="IsTabStop" Value="False"/>
  126. <Setter Property="Focusable" Value="False"/>
  127. <Setter Property="BorderBrush" Value="{DynamicResource ScrollBar_BD}"/>
  128. <Setter Property="Background" Value="{DynamicResource ScrollBar_BG}"/>
  129. <Setter Property="Border.CornerRadius" Value="0"/>
  130. <Setter Property="Template">
  131. <Setter.Value>
  132. <ControlTemplate TargetType="{x:Type Thumb}">
  133. <ControlTemplate.Resources>
  134. <Storyboard x:Key="OnMouseOver">
  135. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="HighLight">
  136. <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
  137. <SplineDoubleKeyFrame KeyTime="0:0:0.2" Value="1" KeySpline="0,0,1,0"/>
  138. </DoubleAnimationUsingKeyFrames>
  139. </Storyboard>
  140. <Storyboard x:Key="OnMouseOut">
  141. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="HighLight">
  142. <EasingDoubleKeyFrame KeyTime="0" Value="1"/>
  143. <SplineDoubleKeyFrame KeyTime="0:0:0.2" Value="0" KeySpline="0,0,0,1"/>
  144. </DoubleAnimationUsingKeyFrames>
  145. </Storyboard>
  146. </ControlTemplate.Resources>
  147. <Grid x:Name="BG" Cursor="Hand">
  148. <Border x:Name="OuterBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1" CornerRadius="{TemplateBinding Border.CornerRadius}" Background="{TemplateBinding Background}">
  149. <Border x:Name="InnerBD_Highlight" BorderThickness="1,1,0,0" BorderBrush="{DynamicResource ScrollBar_InnerHighlight}">
  150. <Border x:Name="InnerBD_Shadow" BorderThickness="0,0,1,1" BorderBrush="{DynamicResource ScrollBar_InnerShadow}"/>
  151. </Border>
  152. </Border>
  153. <Border x:Name="HighLight" Margin="2" Background="{DynamicResource ScrollBar_BG_MouseOver}" Opacity="0" CornerRadius="2"/>
  154. </Grid>
  155. <ControlTemplate.Triggers>
  156. <Trigger Property="IsMouseOver" Value="True">
  157. <Trigger.ExitActions>
  158. <BeginStoryboard x:Name="OnMouseOut_BeginStoryboard" Storyboard="{StaticResource OnMouseOut}"/>
  159. </Trigger.ExitActions>
  160. <Trigger.EnterActions>
  161. <BeginStoryboard Storyboard="{StaticResource OnMouseOver}"/>
  162. </Trigger.EnterActions>
  163. </Trigger>
  164. <Trigger Property="IsEnabled" Value="False">
  165. <Setter Property="Background" TargetName="OuterBorder" Value="{DynamicResource ScrollBar_BG_Unable}"/>
  166. <Setter Property="BorderBrush" TargetName="InnerBD_Highlight" Value="{DynamicResource ScrollBar_InnerHighlight_Unable}"/>
  167. <Setter Property="BorderBrush" TargetName="OuterBorder" Value="{DynamicResource ScrollBar_BD_Unable}"/>
  168. <Setter Property="BorderBrush" TargetName="InnerBD_Shadow" Value="{DynamicResource ScrollBar_InnerShadow_Unable}"/>
  169. </Trigger>
  170. </ControlTemplate.Triggers>
  171. </ControlTemplate>
  172. </Setter.Value>
  173. </Setter>
  174. </Style>
  175. <Style x:Key="ScrollBarHorizontalThumb" TargetType="{x:Type Thumb}">
  176. <Setter Property="SnapsToDevicePixels" Value="True"/>
  177. <Setter Property="OverridesDefaultStyle" Value="true"/>
  178. <Setter Property="IsTabStop" Value="False"/>
  179. <Setter Property="Focusable" Value="False"/>
  180. <Setter Property="BorderBrush" Value="{DynamicResource ScrollBar_BD}"/>
  181. <Setter Property="Background" Value="{DynamicResource ScrollBar_BG}"/>
  182. <Setter Property="Template">
  183. <Setter.Value>
  184. <ControlTemplate TargetType="{x:Type Thumb}">
  185. <ControlTemplate.Resources>
  186. <Storyboard x:Key="OnMouseOver">
  187. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="HighLight">
  188. <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
  189. <SplineDoubleKeyFrame KeyTime="0:0:0.2" Value="1" KeySpline="0,0,1,0"/>
  190. </DoubleAnimationUsingKeyFrames>
  191. </Storyboard>
  192. <Storyboard x:Key="OnMouseOut">
  193. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="HighLight">
  194. <EasingDoubleKeyFrame KeyTime="0" Value="1"/>
  195. <SplineDoubleKeyFrame KeyTime="0:0:0.2" Value="0" KeySpline="0,0,0,1"/>
  196. </DoubleAnimationUsingKeyFrames>
  197. </Storyboard>
  198. </ControlTemplate.Resources>
  199. <Grid x:Name="BG" Cursor="Hand">
  200. <Border x:Name="OuterBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1" CornerRadius="{TemplateBinding Border.CornerRadius}" Background="{TemplateBinding Background}">
  201. <Border x:Name="InnerBD_Highlight" BorderThickness="1,1,0,0" BorderBrush="{DynamicResource ScrollBar_InnerHighlight}">
  202. <Border x:Name="InnerBD_Shadow" BorderThickness="0,0,1,1" BorderBrush="{DynamicResource ScrollBar_InnerShadow}"/>
  203. </Border>
  204. </Border>
  205. <Border x:Name="HighLight" Margin="1" Background="{DynamicResource ScrollBar_BG_MouseOver}" Opacity="0"/>
  206. </Grid>
  207. <ControlTemplate.Triggers>
  208. <Trigger Property="IsMouseOver" Value="True">
  209. <Trigger.ExitActions>
  210. <BeginStoryboard x:Name="OnMouseOut_BeginStoryboard" Storyboard="{StaticResource OnMouseOut}"/>
  211. </Trigger.ExitActions>
  212. <Trigger.EnterActions>
  213. <BeginStoryboard Storyboard="{StaticResource OnMouseOver}"/>
  214. </Trigger.EnterActions>
  215. </Trigger>
  216. <Trigger Property="IsEnabled" Value="False">
  217. <Setter Property="Background" TargetName="OuterBorder" Value="{DynamicResource ScrollBar_BG_Unable}"/>
  218. <Setter Property="BorderBrush" TargetName="InnerBD_Highlight" Value="{DynamicResource ScrollBar_InnerHighlight_Unable}"/>
  219. <Setter Property="BorderBrush" TargetName="OuterBorder" Value="{DynamicResource ScrollBar_BD_Unable}"/>
  220. <Setter Property="BorderBrush" TargetName="InnerBD_Shadow" Value="{DynamicResource ScrollBar_InnerShadow_Unable}"/>
  221. </Trigger>
  222. </ControlTemplate.Triggers>
  223. </ControlTemplate>
  224. </Setter.Value>
  225. </Setter>
  226. </Style>
  227. <ControlTemplate x:Key="ExVerticalScrollBar" TargetType="{x:Type ScrollBar}">
  228. <Grid >
  229. <Grid.RowDefinitions>
  230. <RowDefinition Height="*"/>
  231. <RowDefinition Height="*" />
  232. <RowDefinition Height="0"/>
  233. <!--0.00001*-->
  234. <RowDefinition Height="*" />
  235. <RowDefinition Height="*"/>
  236. </Grid.RowDefinitions>
  237. <RepeatButton x:Name="PageUp"
  238. Grid.Row="0"
  239. Style="{StaticResource ScrollBarLineButton}"
  240. Command="ScrollBar.PageUpCommand"
  241. Content="M 0 8 L 16 8 L 8 0 M 0 28 L 16 28 L 8 20 Z" VerticalAlignment="Stretch" />
  242. <RepeatButton x:Name="LineUp"
  243. Grid.Row="1"
  244. Style="{StaticResource ScrollBarLineButton}"
  245. Command="ScrollBar.LineUpCommand"
  246. Content="M 0 8 L 16 8 L 8 0 Z" VerticalAlignment="Stretch" />
  247. <Track Visibility="Collapsed"
  248. Name="PART_Track"
  249. Grid.Row="2"
  250. Height="{TemplateBinding Height}"
  251. Maximum="{TemplateBinding Maximum}"
  252. Minimum="{TemplateBinding Minimum}"
  253. Value="{TemplateBinding Value}"
  254. IsDirectionReversed="true">
  255. <Track.DecreaseRepeatButton>
  256. <RepeatButton
  257. Style="{StaticResource VerticalScrollBarPageButton}"
  258. Command="ScrollBar.PageUpCommand" />
  259. </Track.DecreaseRepeatButton>
  260. <Track.Thumb>
  261. <Thumb Style="{StaticResource ScrollBarVerticalThumb}" />
  262. </Track.Thumb>
  263. <Track.IncreaseRepeatButton>
  264. <RepeatButton
  265. Style="{StaticResource VerticalScrollBarPageButton}"
  266. Command="ScrollBar.PageDownCommand" />
  267. </Track.IncreaseRepeatButton>
  268. </Track>
  269. <RepeatButton Grid.Row="3" x:Name="LineDown"
  270. Style="{StaticResource ScrollBarLineButton}"
  271. Command="ScrollBar.LineDownCommand"
  272. Content="M 0 0 L 8 8 L 16 0 Z" VerticalAlignment="Stretch"/>
  273. <RepeatButton Grid.Row="4" x:Name="PageDown"
  274. Style="{StaticResource ScrollBarLineButton}"
  275. Command="ScrollBar.PageDownCommand"
  276. Content="M 0 0 L 8 8 L 16 0 M 0 20 L 8 28 L 16 20 Z" VerticalAlignment="Stretch"/>
  277. </Grid>
  278. </ControlTemplate>
  279. <ControlTemplate x:Key="ExModifyHorizontalScrollBar" TargetType="{x:Type ScrollBar}">
  280. <Grid >
  281. <Grid.ColumnDefinitions>
  282. <ColumnDefinition Width="*"/>
  283. <ColumnDefinition Width="*"/>
  284. <ColumnDefinition Width="0"/>
  285. <!--0.00001*-->
  286. <ColumnDefinition Width="*"/>
  287. <ColumnDefinition Width="*"/>
  288. </Grid.ColumnDefinitions>
  289. <RepeatButton
  290. Grid.Column="0"
  291. Style="{StaticResource ScrollBarLineButton}"
  292. Command="ScrollBar.PageLeftCommand"
  293. Content="M 8 0 L 8 16 L 0 8 M 28 0 L 28 16 L 20 8 Z" HorizontalAlignment="Stretch" />
  294. <RepeatButton
  295. Grid.Column="1"
  296. Style="{StaticResource ScrollBarLineButton}"
  297. Command="ScrollBar.LineLeftCommand"
  298. Content="M 8 0 L 8 16 L 0 8 Z" HorizontalAlignment="Stretch" />
  299. <Track
  300. Name="PART_Track"
  301. Grid.Column="2"
  302. Width="{TemplateBinding Width}"
  303. Maximum="{TemplateBinding Maximum}"
  304. Minimum="{TemplateBinding Minimum}"
  305. Value="{TemplateBinding Value}"
  306. IsDirectionReversed="False">
  307. <Track.DecreaseRepeatButton>
  308. <RepeatButton
  309. Style="{StaticResource HorizontalScrollBarPageButton}"
  310. Command="ScrollBar.PageLeftCommand" />
  311. </Track.DecreaseRepeatButton>
  312. <Track.Thumb>
  313. <Thumb Style="{StaticResource ScrollBarHorizontalThumb}"/>
  314. </Track.Thumb>
  315. <Track.IncreaseRepeatButton>
  316. <RepeatButton
  317. Style="{StaticResource HorizontalScrollBarPageButton}"
  318. Command="ScrollBar.PageRightCommand" />
  319. </Track.IncreaseRepeatButton>
  320. </Track>
  321. <RepeatButton
  322. Grid.Column="3"
  323. Style="{StaticResource ScrollBarLineButton}"
  324. Command="ScrollBar.LineRightCommand"
  325. Content="M 0 0 L 8 8 L 0 16 Z" HorizontalAlignment="Stretch"/>
  326. <RepeatButton
  327. Grid.Column="4"
  328. Style="{StaticResource ScrollBarLineButton}"
  329. Command="ScrollBar.PageRightCommand"
  330. Content="M 0 0 L 8 8 L 0 16 M 20 0 L 28 8 L 20 16 Z" HorizontalAlignment="Stretch"/>
  331. </Grid>
  332. </ControlTemplate>
  333. <ControlTemplate x:Key="ExHorizontalScrollBar" TargetType="{x:Type ScrollBar}">
  334. <Grid >
  335. <Grid.ColumnDefinitions>
  336. <ColumnDefinition Width="*"/>
  337. <ColumnDefinition Width="*"/>
  338. <ColumnDefinition Width="*"/>
  339. <ColumnDefinition Width="0"/>
  340. <!--0.00001*-->
  341. <ColumnDefinition Width="*"/>
  342. <ColumnDefinition Width="*"/>
  343. <ColumnDefinition Width="*"/>
  344. </Grid.ColumnDefinitions>
  345. <RepeatButton
  346. Grid.Column="0"
  347. Style="{StaticResource ScrollBarLineButton}"
  348. Command="ScrollBar.PageUpCommand"
  349. Content="M 8 0 L 8 16 L 0 8 M 28 0 L 28 16 L 20 8 M -13 0 L -15 0 L -15 18 L -13 18 Z" HorizontalAlignment="Stretch" />
  350. <RepeatButton
  351. Grid.Column="1"
  352. Style="{StaticResource ScrollBarLineButton}"
  353. Command="ScrollBar.PageLeftCommand"
  354. Content="M 8 0 L 8 16 L 0 8 M 28 0 L 28 16 L 20 8 Z" HorizontalAlignment="Stretch" />
  355. <RepeatButton
  356. Grid.Column="2"
  357. Style="{StaticResource ScrollBarLineButton}"
  358. Command="ScrollBar.LineLeftCommand"
  359. Content="M 8 0 L 8 16 L 0 8 Z" HorizontalAlignment="Stretch" />
  360. <Track
  361. Name="PART_Track"
  362. Grid.Column="3"
  363. Width="{TemplateBinding Width}"
  364. Maximum="{TemplateBinding Maximum}"
  365. Minimum="{TemplateBinding Minimum}"
  366. Value="{TemplateBinding Value}"
  367. IsDirectionReversed="False">
  368. <Track.DecreaseRepeatButton>
  369. <RepeatButton
  370. Style="{StaticResource HorizontalScrollBarPageButton}"
  371. Command="ScrollBar.PageLeftCommand" />
  372. </Track.DecreaseRepeatButton>
  373. <Track.Thumb>
  374. <Thumb Style="{StaticResource ScrollBarHorizontalThumb}"/>
  375. </Track.Thumb>
  376. <Track.IncreaseRepeatButton>
  377. <RepeatButton
  378. Style="{StaticResource HorizontalScrollBarPageButton}"
  379. Command="ScrollBar.PageRightCommand" />
  380. </Track.IncreaseRepeatButton>
  381. </Track>
  382. <RepeatButton
  383. Grid.Column="4"
  384. Style="{StaticResource ScrollBarLineButton}"
  385. Command="ScrollBar.LineRightCommand"
  386. Content="M 0 0 L 8 8 L 0 16 Z" HorizontalAlignment="Stretch"/>
  387. <RepeatButton
  388. Grid.Column="5"
  389. Style="{StaticResource ScrollBarLineButton}"
  390. Command="ScrollBar.PageRightCommand"
  391. Content="M 0 0 L 8 8 L 0 16 M 20 0 L 28 8 L 20 16 Z" HorizontalAlignment="Stretch"/>
  392. <RepeatButton
  393. Grid.Column="6"
  394. Style="{StaticResource ScrollBarLineButton}"
  395. Command="ScrollBar.PageDownCommand"
  396. Content="M 0 0 L 8 8 L 0 16 M 20 0 L 28 8 L 20 16 M 40 0 L 42 0 L 42 18 L 40 18 Z" HorizontalAlignment="Stretch"/>
  397. </Grid>
  398. </ControlTemplate>
  399. <ControlTemplate x:Key="VerticalScrollBar" TargetType="{x:Type ScrollBar}">
  400. <Grid >
  401. <Grid.RowDefinitions>
  402. <RowDefinition MaxHeight="22"/>
  403. <RowDefinition Height="0.00001*"/>
  404. <RowDefinition MaxHeight="22"/>
  405. </Grid.RowDefinitions>
  406. <RepeatButton
  407. Grid.Row="0"
  408. Style="{StaticResource ScrollBarLineButton}"
  409. Height="21"
  410. Command="ScrollBar.LineUpCommand"
  411. Content="M 0 4 L 8 4 L 4 0 Z" VerticalAlignment="Top" />
  412. <Track
  413. Name="PART_Track"
  414. Grid.Row="1"
  415. Height="{TemplateBinding Height}"
  416. Maximum="{TemplateBinding Maximum}"
  417. Minimum="{TemplateBinding Minimum}"
  418. Value="{TemplateBinding Value}"
  419. IsDirectionReversed="true">
  420. <Track.DecreaseRepeatButton>
  421. <RepeatButton
  422. Style="{StaticResource VerticalScrollBarPageButton}"
  423. Command="ScrollBar.PageUpCommand" />
  424. </Track.DecreaseRepeatButton>
  425. <Track.Thumb>
  426. <Thumb Style="{StaticResource ScrollBarVerticalThumb}" />
  427. </Track.Thumb>
  428. <Track.IncreaseRepeatButton>
  429. <RepeatButton
  430. Style="{StaticResource VerticalScrollBarPageButton}"
  431. Command="ScrollBar.PageDownCommand" />
  432. </Track.IncreaseRepeatButton>
  433. </Track>
  434. <RepeatButton Grid.Row="3"
  435. Style="{StaticResource ScrollBarLineButton}"
  436. Height="21"
  437. Command="ScrollBar.LineDownCommand"
  438. Content="M 0 0 L 4 4 L 8 0 Z" VerticalAlignment="Bottom"/>
  439. </Grid>
  440. </ControlTemplate>
  441. <ControlTemplate x:Key="HorizontalScrollBar" TargetType="{x:Type ScrollBar}">
  442. <Grid >
  443. <Grid.ColumnDefinitions>
  444. <ColumnDefinition MaxWidth="22"/>
  445. <ColumnDefinition Width="0.00001*"/>
  446. <ColumnDefinition MaxWidth="22"/>
  447. </Grid.ColumnDefinitions>
  448. <RepeatButton
  449. Grid.Column="0"
  450. Style="{StaticResource ScrollBarLineButton}"
  451. Width="21" Command="ScrollBar.LineLeftCommand"
  452. Content="M 4 0 L 4 8 L 0 4 Z" HorizontalAlignment="Left" />
  453. <Track
  454. Name="PART_Track"
  455. Grid.Column="1"
  456. Width="{TemplateBinding Width}"
  457. Maximum="{TemplateBinding Maximum}"
  458. Minimum="{TemplateBinding Minimum}"
  459. Value="{TemplateBinding Value}"
  460. IsDirectionReversed="False">
  461. <Track.DecreaseRepeatButton>
  462. <RepeatButton
  463. Style="{StaticResource HorizontalScrollBarPageButton}"
  464. Command="ScrollBar.PageLeftCommand" />
  465. </Track.DecreaseRepeatButton>
  466. <Track.Thumb>
  467. <Thumb Style="{StaticResource ScrollBarHorizontalThumb}"/>
  468. </Track.Thumb>
  469. <Track.IncreaseRepeatButton>
  470. <RepeatButton
  471. Style="{StaticResource HorizontalScrollBarPageButton}"
  472. Command="ScrollBar.PageRightCommand" />
  473. </Track.IncreaseRepeatButton>
  474. </Track>
  475. <RepeatButton
  476. Grid.Column="3"
  477. Style="{StaticResource ScrollBarLineButton}"
  478. Width="21"
  479. Command="ScrollBar.LineRightCommand"
  480. Content="M 0 0 L 4 4 L 0 8 Z" HorizontalAlignment="Right"/>
  481. </Grid>
  482. </ControlTemplate>
  483. <Style x:Key="{x:Type ScrollBar}" TargetType="{x:Type ScrollBar}">
  484. <Setter Property="SnapsToDevicePixels" Value="True"/>
  485. <Setter Property="OverridesDefaultStyle" Value="true"/>
  486. <Style.Triggers>
  487. <Trigger Property="Orientation" Value="Horizontal">
  488. <Setter Property="Width" Value="Auto"/>
  489. <Setter Property="Height" Value="20" />
  490. <Setter Property="Margin" Value="0,1"/>
  491. <Setter Property="Template" Value="{StaticResource HorizontalScrollBar}" />
  492. </Trigger>
  493. <Trigger Property="Orientation" Value="Vertical">
  494. <Setter Property="Width" Value="20"/>
  495. <Setter Property="Height" Value="Auto" />
  496. <Setter Property="Margin" Value="1,0"/>
  497. <Setter Property="Template" Value="{StaticResource VerticalScrollBar}" />
  498. </Trigger>
  499. </Style.Triggers>
  500. </Style>
  501. <Style x:Key="ExModifyScrollBar" TargetType="{x:Type ScrollBar}">
  502. <Setter Property="SnapsToDevicePixels" Value="True"/>
  503. <Setter Property="OverridesDefaultStyle" Value="true"/>
  504. <Style.Triggers>
  505. <Trigger Property="Orientation" Value="Horizontal">
  506. <Setter Property="Width" Value="Auto"/>
  507. <Setter Property="Height" Value="40" />
  508. <Setter Property="Margin" Value="0,1"/>
  509. <Setter Property="Template" Value="{StaticResource ExModifyHorizontalScrollBar}" />
  510. </Trigger>
  511. <Trigger Property="Orientation" Value="Vertical">
  512. <Setter Property="Width" Value="40"/>
  513. <Setter Property="Height" Value="Auto" />
  514. <Setter Property="Margin" Value="1,0"/>
  515. <Setter Property="Template" Value="{StaticResource ExVerticalScrollBar}" />
  516. </Trigger>
  517. </Style.Triggers>
  518. </Style>
  519. <Style x:Key="ExScrollBar" TargetType="{x:Type ScrollBar}">
  520. <Setter Property="SnapsToDevicePixels" Value="True"/>
  521. <Setter Property="OverridesDefaultStyle" Value="true"/>
  522. <Style.Triggers>
  523. <Trigger Property="Orientation" Value="Horizontal">
  524. <Setter Property="Width" Value="Auto"/>
  525. <Setter Property="Height" Value="40" />
  526. <Setter Property="Margin" Value="0,1"/>
  527. <Setter Property="Template" Value="{StaticResource ExHorizontalScrollBar}" />
  528. </Trigger>
  529. <Trigger Property="Orientation" Value="Vertical">
  530. <Setter Property="Width" Value="40"/>
  531. <Setter Property="Height" Value="Auto" />
  532. <Setter Property="Margin" Value="1,0"/>
  533. <Setter Property="Template" Value="{StaticResource ExVerticalScrollBar}" />
  534. </Trigger>
  535. </Style.Triggers>
  536. </Style>
  537. <Style x:Key="ExOnlyVerticalScrollBar" TargetType="{x:Type ScrollBar}">
  538. <Setter Property="SnapsToDevicePixels" Value="True"/>
  539. <Setter Property="OverridesDefaultStyle" Value="true"/>
  540. <Style.Triggers>
  541. <Trigger Property="Orientation" Value="Vertical">
  542. <Setter Property="Width" Value="40"/>
  543. <Setter Property="Height" Value="Auto" />
  544. <Setter Property="Margin" Value="1,0"/>
  545. <Setter Property="Template" Value="{StaticResource ExVerticalScrollBar}" />
  546. </Trigger>
  547. </Style.Triggers>
  548. </Style>
  549. <Style TargetType="{x:Type ScrollViewer}">
  550. <Setter Property="OverridesDefaultStyle" Value="True"/>
  551. <Setter Property="Template">
  552. <Setter.Value>
  553. <ControlTemplate TargetType="{x:Type ScrollViewer}">
  554. <Grid>
  555. <Grid.ColumnDefinitions>
  556. <ColumnDefinition/>
  557. <ColumnDefinition Width="Auto"/>
  558. </Grid.ColumnDefinitions>
  559. <Grid.RowDefinitions>
  560. <RowDefinition/>
  561. <RowDefinition Height="Auto"/>
  562. </Grid.RowDefinitions>
  563. <Rectangle
  564. x:Name="Corner"
  565. Grid.Column="1"
  566. Fill="{x:Null}"
  567. Grid.Row="1"/>
  568. <ScrollContentPresenter
  569. x:Name="PART_ScrollContentPresenter"
  570. CanContentScroll="{TemplateBinding CanContentScroll}"
  571. CanHorizontallyScroll="False"
  572. CanVerticallyScroll="False"
  573. ContentTemplate="{TemplateBinding ContentTemplate}"
  574. Content="{TemplateBinding Content}"
  575. Grid.Column="0"
  576. Margin="{TemplateBinding Padding}"
  577. Grid.Row="0"/>
  578. <ScrollBar
  579. x:Name="PART_VerticalScrollBar"
  580. AutomationProperties.AutomationId="VerticalScrollBar"
  581. Cursor="Arrow"
  582. Grid.Column="1"
  583. Maximum="{TemplateBinding ScrollableHeight}"
  584. Minimum="0"
  585. Grid.Row="0"
  586. Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
  587. Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
  588. ViewportSize="{TemplateBinding ViewportHeight}"/>
  589. <ScrollBar
  590. x:Name="PART_HorizontalScrollBar"
  591. AutomationProperties.AutomationId="HorizontalScrollBar"
  592. Cursor="Arrow"
  593. Grid.Column="0"
  594. Maximum="{TemplateBinding ScrollableWidth}"
  595. Minimum="0"
  596. Orientation="Horizontal"
  597. Grid.Row="1"
  598. Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"
  599. Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
  600. ViewportSize="{TemplateBinding ViewportWidth}"/>
  601. </Grid>
  602. </ControlTemplate>
  603. </Setter.Value>
  604. </Setter>
  605. </Style>
  606. <Style x:Key="ExScrollViewer" TargetType="{x:Type ScrollViewer}">
  607. <Setter Property="OverridesDefaultStyle" Value="True"/>
  608. <Setter Property="PanningMode" Value="Both"/>
  609. <Setter Property="Template">
  610. <Setter.Value>
  611. <ControlTemplate TargetType="{x:Type ScrollViewer}">
  612. <Grid>
  613. <Grid.ColumnDefinitions>
  614. <ColumnDefinition/>
  615. <ColumnDefinition Width="Auto"/>
  616. </Grid.ColumnDefinitions>
  617. <Grid.RowDefinitions>
  618. <RowDefinition/>
  619. <RowDefinition Height="Auto"/>
  620. </Grid.RowDefinitions>
  621. <Rectangle
  622. x:Name="Corner"
  623. Grid.Column="1"
  624. Fill="{x:Null}"
  625. Grid.Row="1"/>
  626. <ScrollContentPresenter
  627. x:Name="PART_ScrollContentPresenter"
  628. CanContentScroll="{TemplateBinding CanContentScroll}"
  629. CanHorizontallyScroll="False"
  630. CanVerticallyScroll="False"
  631. ContentTemplate="{TemplateBinding ContentTemplate}"
  632. Content="{TemplateBinding Content}"
  633. Grid.Column="0"
  634. Margin="{TemplateBinding Padding}"
  635. Grid.Row="0"/>
  636. <ScrollBar
  637. x:Name="PART_VerticalScrollBar"
  638. AutomationProperties.AutomationId="ExVerticalScrollBar"
  639. Cursor="Arrow"
  640. Grid.Column="1"
  641. Maximum="{TemplateBinding ScrollableHeight}"
  642. Minimum="0"
  643. Grid.Row="0"
  644. Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
  645. Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
  646. ViewportSize="{TemplateBinding ViewportHeight}"/>
  647. <ScrollBar
  648. x:Name="PART_HorizontalScrollBar"
  649. AutomationProperties.AutomationId="ExHorizontalScrollBar"
  650. Cursor="Arrow"
  651. Grid.Column="0"
  652. Maximum="{TemplateBinding ScrollableWidth}"
  653. Minimum="0"
  654. Orientation="Horizontal"
  655. Grid.Row="1"
  656. Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"
  657. Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
  658. ViewportSize="{TemplateBinding ViewportWidth}"/>
  659. </Grid>
  660. </ControlTemplate>
  661. </Setter.Value>
  662. </Setter>
  663. </Style>
  664. <Style x:Key="SmallScrollBarVerticalThumb" TargetType="{x:Type Thumb}">
  665. <Setter Property="SnapsToDevicePixels" Value="True"/>
  666. <Setter Property="OverridesDefaultStyle" Value="true"/>
  667. <Setter Property="IsTabStop" Value="False"/>
  668. <Setter Property="Focusable" Value="False"/>
  669. <Setter Property="BorderBrush" Value="{DynamicResource ScrollBar_BD}"/>
  670. <Setter Property="Background" Value="{DynamicResource ScrollBar_BG}"/>
  671. <Setter Property="Border.CornerRadius" Value="0"/>
  672. <Setter Property="Template">
  673. <Setter.Value>
  674. <ControlTemplate TargetType="{x:Type Thumb}">
  675. <ControlTemplate.Resources>
  676. <Storyboard x:Key="OnMouseOver">
  677. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="HighLight">
  678. <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
  679. <SplineDoubleKeyFrame KeyTime="0:0:0.2" Value="1" KeySpline="0,0,1,0"/>
  680. </DoubleAnimationUsingKeyFrames>
  681. </Storyboard>
  682. <Storyboard x:Key="OnMouseOut">
  683. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="HighLight">
  684. <EasingDoubleKeyFrame KeyTime="0" Value="1"/>
  685. <SplineDoubleKeyFrame KeyTime="0:0:0.2" Value="0" KeySpline="0,0,0,1"/>
  686. </DoubleAnimationUsingKeyFrames>
  687. </Storyboard>
  688. </ControlTemplate.Resources>
  689. <Grid x:Name="BG" Cursor="Hand">
  690. <Border x:Name="OuterBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1" CornerRadius="{TemplateBinding Border.CornerRadius}" Background="{TemplateBinding Background}">
  691. <Border x:Name="InnerBD_Highlight" BorderThickness="1,1,0,0" BorderBrush="{DynamicResource ScrollBar_InnerHighlight}">
  692. <Border x:Name="InnerBD_Shadow" BorderThickness="0,0,1,1" BorderBrush="{DynamicResource ScrollBar_InnerShadow}"/>
  693. </Border>
  694. </Border>
  695. <Border x:Name="HighLight" Margin="2" Background="{DynamicResource ScrollBar_BG_MouseOver}" Opacity="0" CornerRadius="2"/>
  696. </Grid>
  697. <ControlTemplate.Triggers>
  698. <Trigger Property="IsMouseOver" Value="True">
  699. <Trigger.ExitActions>
  700. <BeginStoryboard x:Name="OnMouseOut_BeginStoryboard" Storyboard="{StaticResource OnMouseOut}"/>
  701. </Trigger.ExitActions>
  702. <Trigger.EnterActions>
  703. <BeginStoryboard Storyboard="{StaticResource OnMouseOver}"/>
  704. </Trigger.EnterActions>
  705. </Trigger>
  706. <Trigger Property="IsEnabled" Value="False">
  707. <Setter Property="Background" TargetName="OuterBorder" Value="{DynamicResource ScrollBar_BG_Unable}"/>
  708. <Setter Property="BorderBrush" TargetName="InnerBD_Highlight" Value="{DynamicResource ScrollBar_InnerHighlight_Unable}"/>
  709. <Setter Property="BorderBrush" TargetName="OuterBorder" Value="{DynamicResource ScrollBar_BD_Unable}"/>
  710. <Setter Property="BorderBrush" TargetName="InnerBD_Shadow" Value="{DynamicResource ScrollBar_InnerShadow_Unable}"/>
  711. </Trigger>
  712. </ControlTemplate.Triggers>
  713. </ControlTemplate>
  714. </Setter.Value>
  715. </Setter>
  716. </Style>
  717. <Style x:Key="SmallScrollBarHorizontalThumb" TargetType="{x:Type Thumb}">
  718. <Setter Property="SnapsToDevicePixels" Value="True"/>
  719. <Setter Property="OverridesDefaultStyle" Value="true"/>
  720. <Setter Property="IsTabStop" Value="False"/>
  721. <Setter Property="Focusable" Value="False"/>
  722. <Setter Property="BorderBrush" Value="{DynamicResource ScrollBar_BD}"/>
  723. <Setter Property="Background" Value="{DynamicResource ScrollBar_BG}"/>
  724. <Setter Property="Template">
  725. <Setter.Value>
  726. <ControlTemplate TargetType="{x:Type Thumb}">
  727. <ControlTemplate.Resources>
  728. <Storyboard x:Key="OnMouseOver">
  729. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="HighLight">
  730. <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
  731. <SplineDoubleKeyFrame KeyTime="0:0:0.2" Value="1" KeySpline="0,0,1,0"/>
  732. </DoubleAnimationUsingKeyFrames>
  733. </Storyboard>
  734. <Storyboard x:Key="OnMouseOut">
  735. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="HighLight">
  736. <EasingDoubleKeyFrame KeyTime="0" Value="1"/>
  737. <SplineDoubleKeyFrame KeyTime="0:0:0.2" Value="0" KeySpline="0,0,0,1"/>
  738. </DoubleAnimationUsingKeyFrames>
  739. </Storyboard>
  740. </ControlTemplate.Resources>
  741. <Grid x:Name="BG" Cursor="Hand">
  742. <Border x:Name="OuterBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1" CornerRadius="{TemplateBinding Border.CornerRadius}" Background="{TemplateBinding Background}">
  743. <Border x:Name="InnerBD_Highlight" BorderThickness="1,1,0,0" BorderBrush="{DynamicResource ScrollBar_InnerHighlight}">
  744. <Border x:Name="InnerBD_Shadow" BorderThickness="0,0,1,1" BorderBrush="{DynamicResource ScrollBar_InnerShadow}"/>
  745. </Border>
  746. </Border>
  747. <Border x:Name="HighLight" Margin="1" Background="{DynamicResource ScrollBar_BG_MouseOver}" Opacity="0"/>
  748. </Grid>
  749. <ControlTemplate.Triggers>
  750. <Trigger Property="IsMouseOver" Value="True">
  751. <Trigger.ExitActions>
  752. <BeginStoryboard x:Name="OnMouseOut_BeginStoryboard" Storyboard="{StaticResource OnMouseOut}"/>
  753. </Trigger.ExitActions>
  754. <Trigger.EnterActions>
  755. <BeginStoryboard Storyboard="{StaticResource OnMouseOver}"/>
  756. </Trigger.EnterActions>
  757. </Trigger>
  758. <Trigger Property="IsEnabled" Value="False">
  759. <Setter Property="Background" TargetName="OuterBorder" Value="{DynamicResource ScrollBar_BG_Unable}"/>
  760. <Setter Property="BorderBrush" TargetName="InnerBD_Highlight" Value="{DynamicResource ScrollBar_InnerHighlight_Unable}"/>
  761. <Setter Property="BorderBrush" TargetName="OuterBorder" Value="{DynamicResource ScrollBar_BD_Unable}"/>
  762. <Setter Property="BorderBrush" TargetName="InnerBD_Shadow" Value="{DynamicResource ScrollBar_InnerShadow_Unable}"/>
  763. </Trigger>
  764. </ControlTemplate.Triggers>
  765. </ControlTemplate>
  766. </Setter.Value>
  767. </Setter>
  768. </Style>
  769. <ControlTemplate x:Key="SmallVerticalScrollBar" TargetType="{x:Type ScrollBar}">
  770. <Grid >
  771. <!--<Grid.RowDefinitions>
  772. <RowDefinition Height="*"/>
  773. <RowDefinition Height="*" />
  774. <RowDefinition Height="0"/>
  775. -->
  776. <!--0.00001*-->
  777. <!--
  778. <RowDefinition Height="*" />
  779. <RowDefinition Height="*"/>
  780. </Grid.RowDefinitions>-->
  781. <Grid.ColumnDefinitions>
  782. <ColumnDefinition/>
  783. <ColumnDefinition/>
  784. </Grid.ColumnDefinitions>
  785. <!-- <RepeatButton
  786. Grid.Row="0" Grid.Column="0"
  787. Style="{StaticResource ScrollBarLineButton}"
  788. Command="ScrollBar.PageUpCommand"
  789. Content="M 0 8 L 16 8 L 8 0 M 0 28 L 16 28 L 8 20 Z" VerticalAlignment="Stretch" />-->
  790. <RepeatButton
  791. Grid.Row="0" Grid.Column="0"
  792. Style="{StaticResource ScrollBarLineButton}"
  793. Command="ScrollBar.PageUpCommand"
  794. Content="M 0 8 L 16 8 L 8 0 Z" VerticalAlignment="Stretch" />
  795. <!--<Track Visibility="Collapsed"
  796. Name="PART_Track"
  797. Grid.Row="2"
  798. Height="{TemplateBinding Height}"
  799. Maximum="{TemplateBinding Maximum}"
  800. Minimum="{TemplateBinding Minimum}"
  801. Value="{TemplateBinding Value}"
  802. IsDirectionReversed="true">
  803. <Track.DecreaseRepeatButton>
  804. <RepeatButton
  805. Style="{StaticResource VerticalScrollBarPageButton}"
  806. Command="ScrollBar.PageUpCommand" />
  807. </Track.DecreaseRepeatButton>
  808. <Track.Thumb>
  809. <Thumb Style="{StaticResource SmallScrollBarVerticalThumb}" />
  810. </Track.Thumb>
  811. <Track.IncreaseRepeatButton>
  812. <RepeatButton
  813. Style="{StaticResource VerticalScrollBarPageButton}"
  814. Command="ScrollBar.PageDownCommand" />
  815. </Track.IncreaseRepeatButton>
  816. </Track>-->
  817. <RepeatButton Grid.Row="0" Grid.Column="1"
  818. Style="{StaticResource ScrollBarLineButton}"
  819. Command="ScrollBar.PageDownCommand"
  820. Content="M 0 0 L 8 8 L 16 0 Z" VerticalAlignment="Stretch"/>
  821. <!--<RepeatButton Grid.Row="0" Grid.Column="1"
  822. Style="{StaticResource ScrollBarLineButton}"
  823. Command="ScrollBar.PageDownCommand"
  824. Content="M 0 0 L 8 8 L 16 0 M 0 20 L 8 28 L 16 20 Z" VerticalAlignment="Stretch"/>-->
  825. </Grid>
  826. </ControlTemplate>
  827. <ControlTemplate x:Key="SmallHorizontalScrollBar" TargetType="{x:Type ScrollBar}">
  828. <Grid >
  829. <Grid.ColumnDefinitions>
  830. <ColumnDefinition Width="*"/>
  831. <ColumnDefinition Width="*"/>
  832. <ColumnDefinition Width="0"/>
  833. <!--0.00001*-->
  834. <ColumnDefinition Width="*"/>
  835. <ColumnDefinition Width="*"/>
  836. </Grid.ColumnDefinitions>
  837. <RepeatButton
  838. Grid.Column="0"
  839. Style="{StaticResource ScrollBarLineButton}"
  840. Command="ScrollBar.PageLeftCommand"
  841. Content="M 8 0 L 8 16 L 0 8 M 28 0 L 28 16 L 20 8 Z" HorizontalAlignment="Stretch" />
  842. <RepeatButton
  843. Grid.Column="1"
  844. Style="{StaticResource ScrollBarLineButton}"
  845. Command="ScrollBar.LineLeftCommand"
  846. Content="M 8 0 L 8 16 L 0 8 Z" HorizontalAlignment="Stretch" />
  847. <Track
  848. Name="PART_Track"
  849. Grid.Column="2"
  850. Width="{TemplateBinding Width}"
  851. Maximum="{TemplateBinding Maximum}"
  852. Minimum="{TemplateBinding Minimum}"
  853. Value="{TemplateBinding Value}"
  854. IsDirectionReversed="False">
  855. <Track.DecreaseRepeatButton>
  856. <RepeatButton
  857. Style="{StaticResource HorizontalScrollBarPageButton}"
  858. Command="ScrollBar.PageLeftCommand" />
  859. </Track.DecreaseRepeatButton>
  860. <Track.Thumb>
  861. <Thumb Style="{StaticResource SmallScrollBarHorizontalThumb}"/>
  862. </Track.Thumb>
  863. <Track.IncreaseRepeatButton>
  864. <RepeatButton
  865. Style="{StaticResource HorizontalScrollBarPageButton}"
  866. Command="ScrollBar.PageRightCommand" />
  867. </Track.IncreaseRepeatButton>
  868. </Track>
  869. <RepeatButton
  870. Grid.Column="3"
  871. Style="{StaticResource ScrollBarLineButton}"
  872. Command="ScrollBar.LineRightCommand"
  873. Content="M 0 0 L 8 8 L 0 16 Z" HorizontalAlignment="Stretch"/>
  874. <RepeatButton
  875. Grid.Column="4"
  876. Style="{StaticResource ScrollBarLineButton}"
  877. Command="ScrollBar.PageRightCommand"
  878. Content="M 0 0 L 8 8 L 0 16 M 20 0 L 28 8 L 20 16 Z" HorizontalAlignment="Stretch"/>
  879. </Grid>
  880. </ControlTemplate>
  881. <Style x:Key="SmallScrollBar" TargetType="{x:Type ScrollBar}">
  882. <Setter Property="SnapsToDevicePixels" Value="True"/>
  883. <Setter Property="OverridesDefaultStyle" Value="true"/>
  884. <Style.Triggers>
  885. <Trigger Property="Orientation" Value="Horizontal">
  886. <Setter Property="Width" Value="Auto"/>
  887. <Setter Property="Height" Value="40" />
  888. <Setter Property="Margin" Value="0,1"/>
  889. <Setter Property="Template" Value="{StaticResource SmallHorizontalScrollBar}" />
  890. </Trigger>
  891. <Trigger Property="Orientation" Value="Vertical">
  892. <Setter Property="Width" Value="100"/>
  893. <Setter Property="Height" Value="Auto" />
  894. <Setter Property="Margin" Value="1,0"/>
  895. <Setter Property="Template" Value="{StaticResource SmallVerticalScrollBar}" />
  896. </Trigger>
  897. </Style.Triggers>
  898. </Style>
  899. <Style x:Key="SmallScrollViewer" TargetType="{x:Type ScrollViewer}">
  900. <Setter Property="OverridesDefaultStyle" Value="True"/>
  901. <Setter Property="Template">
  902. <Setter.Value>
  903. <ControlTemplate TargetType="{x:Type ScrollViewer}">
  904. <Grid>
  905. <Grid.ColumnDefinitions>
  906. <ColumnDefinition/>
  907. <ColumnDefinition Width="Auto"/>
  908. </Grid.ColumnDefinitions>
  909. <Grid.RowDefinitions>
  910. <RowDefinition/>
  911. <RowDefinition Height="Auto"/>
  912. </Grid.RowDefinitions>
  913. <Rectangle
  914. x:Name="Corner"
  915. Grid.Column="1"
  916. Fill="{x:Null}"
  917. Grid.Row="1"/>
  918. <ScrollContentPresenter
  919. x:Name="PART_ScrollContentPresenter"
  920. CanContentScroll="{TemplateBinding CanContentScroll}"
  921. CanHorizontallyScroll="False"
  922. CanVerticallyScroll="False"
  923. ContentTemplate="{TemplateBinding ContentTemplate}"
  924. Content="{TemplateBinding Content}"
  925. Grid.Column="0"
  926. Margin="{TemplateBinding Padding}"
  927. Grid.Row="0"/>
  928. <ScrollBar
  929. Style="{DynamicResource SmallScrollBar}"
  930. x:Name="PART_VerticalScrollBar"
  931. AutomationProperties.AutomationId="SmallVerticalScrollBar"
  932. Cursor="Arrow"
  933. Grid.Column="1"
  934. Maximum="{TemplateBinding ScrollableHeight}"
  935. Minimum="0"
  936. Grid.Row="0"
  937. Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
  938. Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
  939. ViewportSize="{TemplateBinding ViewportHeight}"/>
  940. <ScrollBar
  941. x:Name="PART_HorizontalScrollBar"
  942. AutomationProperties.AutomationId="SmallHorizontalScrollBar"
  943. Cursor="Arrow"
  944. Grid.Column="0"
  945. Maximum="{TemplateBinding ScrollableWidth}"
  946. Minimum="0"
  947. Orientation="Horizontal"
  948. Grid.Row="1"
  949. Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"
  950. Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
  951. ViewportSize="{TemplateBinding ViewportWidth}"/>
  952. </Grid>
  953. </ControlTemplate>
  954. </Setter.Value>
  955. </Setter>
  956. </Style>
  957. <Style x:Key="MenuScrollViewer" TargetType="{x:Type ScrollViewer}">
  958. <Setter Property="OverridesDefaultStyle" Value="True"/>
  959. <Setter Property="Template">
  960. <Setter.Value>
  961. <ControlTemplate TargetType="{x:Type ScrollViewer}">
  962. <Grid>
  963. <Grid.ColumnDefinitions>
  964. <ColumnDefinition/>
  965. <ColumnDefinition Width="Auto"/>
  966. </Grid.ColumnDefinitions>
  967. <Grid.RowDefinitions>
  968. <RowDefinition/>
  969. <RowDefinition Height="Auto"/>
  970. </Grid.RowDefinitions>
  971. <Rectangle
  972. x:Name="Corner"
  973. Grid.Column="1"
  974. Fill="{x:Null}"
  975. Grid.Row="1"/>
  976. <ScrollContentPresenter
  977. x:Name="PART_ScrollContentPresenter"
  978. CanContentScroll="{TemplateBinding CanContentScroll}"
  979. CanHorizontallyScroll="False"
  980. CanVerticallyScroll="False"
  981. ContentTemplate="{TemplateBinding ContentTemplate}"
  982. Content="{TemplateBinding Content}"
  983. Grid.Column="0"
  984. Margin="{TemplateBinding Padding}"
  985. Grid.Row="0"/>
  986. <ScrollBar
  987. x:Name="PART_VerticalScrollBar"
  988. AutomationProperties.AutomationId="ExVerticalScrollBar"
  989. Cursor="Arrow"
  990. Grid.Column="1"
  991. Maximum="{TemplateBinding ScrollableHeight}"
  992. Minimum="0"
  993. Grid.Row="0"
  994. Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
  995. Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
  996. ViewportSize="{TemplateBinding ViewportHeight}"/>
  997. <ScrollBar
  998. x:Name="PART_HorizontalScrollBar"
  999. AutomationProperties.AutomationId="ExHorizontalScrollBar"
  1000. Cursor="Arrow"
  1001. Grid.Column="0"
  1002. Maximum="{TemplateBinding ScrollableWidth}"
  1003. Minimum="0"
  1004. Orientation="Horizontal"
  1005. Grid.Row="1"
  1006. Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"
  1007. Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
  1008. ViewportSize="{TemplateBinding ViewportWidth}"/>
  1009. </Grid>
  1010. </ControlTemplate>
  1011. </Setter.Value>
  1012. </Setter>
  1013. </Style>
  1014. </ResourceDictionary>