SliderBaseStyle.xaml 60 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947
  1. <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:hc="clr-namespace:HandyControl.Controls">
  4. <!--region Common-->
  5. <Style x:Key="SliderRepeatButtonHorizontalStyle" TargetType="RepeatButton">
  6. <Setter Property="OverridesDefaultStyle" Value="true"/>
  7. <Setter Property="Background" Value="Transparent"/>
  8. <Setter Property="Focusable" Value="false"/>
  9. <Setter Property="IsTabStop" Value="false"/>
  10. <Setter Property="Template">
  11. <Setter.Value>
  12. <ControlTemplate TargetType="RepeatButton">
  13. <Border Background="Transparent" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}">
  14. <Rectangle StrokeThickness="0" Fill="{TemplateBinding Background}" Height="2"/>
  15. </Border>
  16. </ControlTemplate>
  17. </Setter.Value>
  18. </Setter>
  19. </Style>
  20. <Style x:Key="SliderRepeatButtonVerticalStyle" TargetType="RepeatButton">
  21. <Setter Property="OverridesDefaultStyle" Value="true"/>
  22. <Setter Property="Background" Value="Transparent"/>
  23. <Setter Property="Focusable" Value="false"/>
  24. <Setter Property="IsTabStop" Value="false"/>
  25. <Setter Property="Template">
  26. <Setter.Value>
  27. <ControlTemplate TargetType="RepeatButton">
  28. <Border Background="Transparent" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}">
  29. <Rectangle StrokeThickness="0" Fill="{TemplateBinding Background}" Width="2"/>
  30. </Border>
  31. </ControlTemplate>
  32. </Setter.Value>
  33. </Setter>
  34. </Style>
  35. <ControlTemplate x:Key="SliderThumb" TargetType="Thumb">
  36. <hc:AxleCanvas>
  37. <Border Canvas.Bottom="0" Effect="{StaticResource EffectShadow1}" Name="BorderDot" BorderThickness="0" BorderBrush="{DynamicResource PrimaryBrush}" Width="18" Height="18" Background="White" CornerRadius="9"/>
  38. </hc:AxleCanvas>
  39. <ControlTemplate.Triggers>
  40. <Trigger Property="IsMouseOver" Value="True">
  41. <Setter Property="Effect" Value="{StaticResource EffectShadow2}"/>
  42. </Trigger>
  43. <EventTrigger RoutedEvent="PreviewMouseLeftButtonDown">
  44. <EventTrigger.Actions>
  45. <BeginStoryboard>
  46. <Storyboard>
  47. <ThicknessAnimation To="2" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  48. </Storyboard>
  49. </BeginStoryboard>
  50. </EventTrigger.Actions>
  51. </EventTrigger>
  52. <EventTrigger RoutedEvent="PreviewMouseLeftButtonUp">
  53. <EventTrigger.Actions>
  54. <BeginStoryboard>
  55. <Storyboard>
  56. <ThicknessAnimation To="0" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  57. </Storyboard>
  58. </BeginStoryboard>
  59. </EventTrigger.Actions>
  60. </EventTrigger>
  61. </ControlTemplate.Triggers>
  62. </ControlTemplate>
  63. <ControlTemplate x:Key="TipSliderThumbHorizontalTop" TargetType="Thumb">
  64. <hc:AxleCanvas>
  65. <Label Name="LabelValue" IsHitTestVisible="False" Opacity="0" Canvas.Bottom="28" Style="{StaticResource LabelPrimary}" Content="{Binding Value,RelativeSource={RelativeSource AncestorType=Slider}}" ContentStringFormat="{Binding Path=(hc:TipElement.StringFormat),RelativeSource={RelativeSource AncestorType=Slider}}"/>
  66. <Border Canvas.Bottom="0" Effect="{StaticResource EffectShadow1}" Name="BorderDot" BorderThickness="0" BorderBrush="{DynamicResource PrimaryBrush}" Width="18" Height="18" Background="White" CornerRadius="9"/>
  67. </hc:AxleCanvas>
  68. <ControlTemplate.Triggers>
  69. <Trigger Property="IsMouseOver" Value="True">
  70. <Setter Property="Effect" Value="{StaticResource EffectShadow2}" TargetName="BorderDot"/>
  71. <Setter Property="Opacity" Value="1" TargetName="LabelValue"/>
  72. </Trigger>
  73. <EventTrigger RoutedEvent="PreviewMouseLeftButtonDown">
  74. <EventTrigger.Actions>
  75. <BeginStoryboard>
  76. <Storyboard>
  77. <ThicknessAnimation To="2" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  78. </Storyboard>
  79. </BeginStoryboard>
  80. </EventTrigger.Actions>
  81. </EventTrigger>
  82. <EventTrigger RoutedEvent="PreviewMouseLeftButtonUp">
  83. <EventTrigger.Actions>
  84. <BeginStoryboard>
  85. <Storyboard>
  86. <ThicknessAnimation To="0" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  87. </Storyboard>
  88. </BeginStoryboard>
  89. </EventTrigger.Actions>
  90. </EventTrigger>
  91. </ControlTemplate.Triggers>
  92. </ControlTemplate>
  93. <ControlTemplate x:Key="TipSliderThumbHorizontalBottom" TargetType="Thumb">
  94. <hc:AxleCanvas>
  95. <Label Name="LabelValue" IsHitTestVisible="False" Opacity="0" Canvas.Top="28" Style="{StaticResource LabelPrimary}" Content="{Binding Value,RelativeSource={RelativeSource AncestorType=Slider}}" ContentStringFormat="{Binding Path=(hc:TipElement.StringFormat),RelativeSource={RelativeSource AncestorType=Slider}}"/>
  96. <Border Canvas.Bottom="0" Effect="{StaticResource EffectShadow1}" Name="BorderDot" BorderThickness="0" BorderBrush="{DynamicResource PrimaryBrush}" Width="18" Height="18" Background="White" CornerRadius="9"/>
  97. </hc:AxleCanvas>
  98. <ControlTemplate.Triggers>
  99. <Trigger Property="IsMouseOver" Value="True">
  100. <Setter Property="Effect" Value="{StaticResource EffectShadow2}" TargetName="BorderDot"/>
  101. <Setter Property="Opacity" Value="1" TargetName="LabelValue"/>
  102. </Trigger>
  103. <EventTrigger RoutedEvent="PreviewMouseLeftButtonDown">
  104. <EventTrigger.Actions>
  105. <BeginStoryboard>
  106. <Storyboard>
  107. <ThicknessAnimation To="2" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  108. </Storyboard>
  109. </BeginStoryboard>
  110. </EventTrigger.Actions>
  111. </EventTrigger>
  112. <EventTrigger RoutedEvent="PreviewMouseLeftButtonUp">
  113. <EventTrigger.Actions>
  114. <BeginStoryboard>
  115. <Storyboard>
  116. <ThicknessAnimation To="0" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  117. </Storyboard>
  118. </BeginStoryboard>
  119. </EventTrigger.Actions>
  120. </EventTrigger>
  121. </ControlTemplate.Triggers>
  122. </ControlTemplate>
  123. <ControlTemplate x:Key="TipSliderThumbVerticalLeft" TargetType="Thumb">
  124. <hc:AxleCanvas Orientation="Vertical">
  125. <Label Name="LabelValue" IsHitTestVisible="False" Opacity="0" Canvas.Right="28" Style="{StaticResource LabelPrimary}" Content="{Binding Value,RelativeSource={RelativeSource AncestorType=Slider}}" ContentStringFormat="{Binding Path=(hc:TipElement.StringFormat),RelativeSource={RelativeSource AncestorType=Slider}}"/>
  126. <Border Canvas.Right="0" Effect="{StaticResource EffectShadow1}" Name="BorderDot" BorderThickness="0" BorderBrush="{DynamicResource PrimaryBrush}" Width="18" Height="18" Background="White" CornerRadius="9"/>
  127. </hc:AxleCanvas>
  128. <ControlTemplate.Triggers>
  129. <Trigger Property="IsMouseOver" Value="True">
  130. <Setter Property="Effect" Value="{StaticResource EffectShadow2}" TargetName="BorderDot"/>
  131. <Setter Property="Opacity" Value="1" TargetName="LabelValue"/>
  132. </Trigger>
  133. <EventTrigger RoutedEvent="PreviewMouseLeftButtonDown">
  134. <EventTrigger.Actions>
  135. <BeginStoryboard>
  136. <Storyboard>
  137. <ThicknessAnimation To="2" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  138. </Storyboard>
  139. </BeginStoryboard>
  140. </EventTrigger.Actions>
  141. </EventTrigger>
  142. <EventTrigger RoutedEvent="PreviewMouseLeftButtonUp">
  143. <EventTrigger.Actions>
  144. <BeginStoryboard>
  145. <Storyboard>
  146. <ThicknessAnimation To="0" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  147. </Storyboard>
  148. </BeginStoryboard>
  149. </EventTrigger.Actions>
  150. </EventTrigger>
  151. </ControlTemplate.Triggers>
  152. </ControlTemplate>
  153. <ControlTemplate x:Key="TipSliderThumbVerticalRight" TargetType="Thumb">
  154. <hc:AxleCanvas Orientation="Vertical">
  155. <Label Name="LabelValue" IsHitTestVisible="False" Opacity="0" Canvas.Left="28" Style="{StaticResource LabelPrimary}" Content="{Binding Value,RelativeSource={RelativeSource AncestorType=Slider}}" ContentStringFormat="{Binding Path=(hc:TipElement.StringFormat),RelativeSource={RelativeSource AncestorType=Slider}}"/>
  156. <Border Canvas.Right="0" Effect="{StaticResource EffectShadow1}" Name="BorderDot" BorderThickness="0" BorderBrush="{DynamicResource PrimaryBrush}" Width="18" Height="18" Background="White" CornerRadius="9"/>
  157. </hc:AxleCanvas>
  158. <ControlTemplate.Triggers>
  159. <Trigger Property="IsMouseOver" Value="True">
  160. <Setter Property="Effect" Value="{StaticResource EffectShadow2}" TargetName="BorderDot"/>
  161. <Setter Property="Opacity" Value="1" TargetName="LabelValue"/>
  162. </Trigger>
  163. <EventTrigger RoutedEvent="PreviewMouseLeftButtonDown">
  164. <EventTrigger.Actions>
  165. <BeginStoryboard>
  166. <Storyboard>
  167. <ThicknessAnimation To="2" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  168. </Storyboard>
  169. </BeginStoryboard>
  170. </EventTrigger.Actions>
  171. </EventTrigger>
  172. <EventTrigger RoutedEvent="PreviewMouseLeftButtonUp">
  173. <EventTrigger.Actions>
  174. <BeginStoryboard>
  175. <Storyboard>
  176. <ThicknessAnimation To="0" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  177. </Storyboard>
  178. </BeginStoryboard>
  179. </EventTrigger.Actions>
  180. </EventTrigger>
  181. </ControlTemplate.Triggers>
  182. </ControlTemplate>
  183. <ControlTemplate x:Key="SliderHorizontal" TargetType="Slider">
  184. <Grid>
  185. <Grid.RowDefinitions>
  186. <RowDefinition Height="Auto"/>
  187. <RowDefinition Height="Auto" MinHeight="{TemplateBinding MinHeight}"/>
  188. <RowDefinition Height="Auto"/>
  189. </Grid.RowDefinitions>
  190. <TickBar x:Name="TopTick" Fill="{TemplateBinding Foreground}" Height="4" Margin="0,0,0,2" Placement="Top" Grid.Row="0" Visibility="Collapsed"/>
  191. <TickBar x:Name="BottomTick" Fill="{TemplateBinding Foreground}" Height="4" Margin="0,2,0,0" Placement="Bottom" Grid.Row="2" Visibility="Collapsed"/>
  192. <Border x:Name="TrackBackground" Background="{TemplateBinding Background}" Grid.Row="1" Height="2" VerticalAlignment="center" Margin="9,0">
  193. <Canvas x:Name="Canvas_SelectionRange" Visibility="Hidden">
  194. <Rectangle x:Name="PART_SelectionRange" Fill="{DynamicResource AccentBrush}" Height="2"/>
  195. </Canvas>
  196. </Border>
  197. <Track Margin="9,0" x:Name="PART_Track" Grid.Row="1">
  198. <Track.DecreaseRepeatButton>
  199. <RepeatButton Command="{x:Static Slider.DecreaseLarge}" Background="{DynamicResource PrimaryBrush}" Style="{StaticResource SliderRepeatButtonHorizontalStyle}"/>
  200. </Track.DecreaseRepeatButton>
  201. <Track.IncreaseRepeatButton>
  202. <RepeatButton Command="{x:Static Slider.IncreaseLarge}" Style="{StaticResource SliderRepeatButtonHorizontalStyle}"/>
  203. </Track.IncreaseRepeatButton>
  204. <Track.Thumb>
  205. <Thumb ClipToBounds="False" Width="18" Margin="-9,0" Height="18" x:Name="Thumb" Focusable="False" OverridesDefaultStyle="True" Template="{StaticResource SliderThumb}" VerticalAlignment="Center"/>
  206. </Track.Thumb>
  207. </Track>
  208. </Grid>
  209. <ControlTemplate.Triggers>
  210. <MultiTrigger>
  211. <MultiTrigger.Conditions>
  212. <Condition Property="hc:TipElement.Placement" Value="Top"/>
  213. <Condition Property="hc:TipElement.Visibility" Value="Visible"/>
  214. </MultiTrigger.Conditions>
  215. <Setter Property="Template" TargetName="Thumb" Value="{StaticResource TipSliderThumbHorizontalTop}"/>
  216. </MultiTrigger>
  217. <MultiTrigger>
  218. <MultiTrigger.Conditions>
  219. <Condition Property="hc:TipElement.Placement" Value="Bottom"/>
  220. <Condition Property="hc:TipElement.Visibility" Value="Visible"/>
  221. </MultiTrigger.Conditions>
  222. <Setter Property="Template" TargetName="Thumb" Value="{StaticResource TipSliderThumbHorizontalBottom}"/>
  223. </MultiTrigger>
  224. <Trigger Property="TickPlacement" Value="TopLeft">
  225. <Setter Property="Visibility" TargetName="TopTick" Value="Visible"/>
  226. </Trigger>
  227. <Trigger Property="TickPlacement" Value="BottomRight">
  228. <Setter Property="Visibility" TargetName="BottomTick" Value="Visible"/>
  229. </Trigger>
  230. <Trigger Property="TickPlacement" Value="Both">
  231. <Setter Property="Visibility" TargetName="TopTick" Value="Visible"/>
  232. <Setter Property="Visibility" TargetName="BottomTick" Value="Visible"/>
  233. </Trigger>
  234. <Trigger Property="IsSelectionRangeEnabled" Value="true">
  235. <Setter Property="Visibility" TargetName="Canvas_SelectionRange" Value="Visible"/>
  236. </Trigger>
  237. </ControlTemplate.Triggers>
  238. </ControlTemplate>
  239. <ControlTemplate x:Key="SliderVertical" TargetType="Slider">
  240. <Grid>
  241. <Grid.ColumnDefinitions>
  242. <ColumnDefinition Width="Auto"/>
  243. <ColumnDefinition MinWidth="{TemplateBinding MinWidth}" Width="Auto"/>
  244. <ColumnDefinition Width="Auto"/>
  245. </Grid.ColumnDefinitions>
  246. <TickBar x:Name="TopTick" Grid.Column="0" Fill="{TemplateBinding Foreground}" Margin="0,0,2,0" Placement="Left" Visibility="Collapsed" Width="4"/>
  247. <TickBar x:Name="BottomTick" Grid.Column="2" Fill="{TemplateBinding Foreground}" Margin="2,0,0,0" Placement="Right" Visibility="Collapsed" Width="4"/>
  248. <Border x:Name="TrackBackground" Background="{TemplateBinding Background}" Grid.Column="1" HorizontalAlignment="center" Margin="0,9" Width="2">
  249. <Canvas x:Name="Canvas_SelectionRange" Visibility="Hidden">
  250. <Rectangle x:Name="PART_SelectionRange" Fill="{DynamicResource AccentBrush}" Width="2"/>
  251. </Canvas>
  252. </Border>
  253. <Track Margin="0,9" x:Name="PART_Track" Grid.Column="1">
  254. <Track.DecreaseRepeatButton>
  255. <RepeatButton Command="{x:Static Slider.DecreaseLarge}" Background="{DynamicResource PrimaryBrush}" Style="{StaticResource SliderRepeatButtonVerticalStyle}"/>
  256. </Track.DecreaseRepeatButton>
  257. <Track.IncreaseRepeatButton>
  258. <RepeatButton Command="{x:Static Slider.IncreaseLarge}" Style="{StaticResource SliderRepeatButtonVerticalStyle}"/>
  259. </Track.IncreaseRepeatButton>
  260. <Track.Thumb>
  261. <Thumb Margin="0,-9" x:Name="Thumb" Focusable="False" Height="18" OverridesDefaultStyle="True" Template="{StaticResource SliderThumb}" HorizontalAlignment="Center" Width="18"/>
  262. </Track.Thumb>
  263. </Track>
  264. </Grid>
  265. <ControlTemplate.Triggers>
  266. <MultiTrigger>
  267. <MultiTrigger.Conditions>
  268. <Condition Property="hc:TipElement.Placement" Value="Left"/>
  269. <Condition Property="hc:TipElement.Visibility" Value="Visible"/>
  270. </MultiTrigger.Conditions>
  271. <Setter Property="Template" TargetName="Thumb" Value="{StaticResource TipSliderThumbVerticalLeft}"/>
  272. </MultiTrigger>
  273. <MultiTrigger>
  274. <MultiTrigger.Conditions>
  275. <Condition Property="hc:TipElement.Placement" Value="Right"/>
  276. <Condition Property="hc:TipElement.Visibility" Value="Visible"/>
  277. </MultiTrigger.Conditions>
  278. <Setter Property="Template" TargetName="Thumb" Value="{StaticResource TipSliderThumbVerticalRight}"/>
  279. </MultiTrigger>
  280. <Trigger Property="TickPlacement" Value="TopLeft">
  281. <Setter Property="Visibility" TargetName="TopTick" Value="Visible"/>
  282. </Trigger>
  283. <Trigger Property="TickPlacement" Value="BottomRight">
  284. <Setter Property="Visibility" TargetName="BottomTick" Value="Visible"/>
  285. </Trigger>
  286. <Trigger Property="TickPlacement" Value="Both">
  287. <Setter Property="Visibility" TargetName="TopTick" Value="Visible"/>
  288. <Setter Property="Visibility" TargetName="BottomTick" Value="Visible"/>
  289. </Trigger>
  290. <Trigger Property="IsSelectionRangeEnabled" Value="true">
  291. <Setter Property="Visibility" TargetName="Canvas_SelectionRange" Value="Visible"/>
  292. </Trigger>
  293. </ControlTemplate.Triggers>
  294. </ControlTemplate>
  295. <Style x:Key="SliderBaseStyle" BasedOn="{StaticResource BaseStyle}" TargetType="Slider">
  296. <Setter Property="Stylus.IsPressAndHoldEnabled" Value="false"/>
  297. <Setter Property="Background" Value="{DynamicResource SecondaryRegionBrush}"/>
  298. <Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
  299. <Setter Property="Foreground" Value="{DynamicResource DarkPrimaryBrush}"/>
  300. <Setter Property="Template" Value="{StaticResource SliderHorizontal}"/>
  301. <Style.Triggers>
  302. <Trigger Property="Orientation" Value="Vertical">
  303. <Setter Property="Template" Value="{StaticResource SliderVertical}"/>
  304. </Trigger>
  305. <Trigger Property="IsEnabled" Value="False">
  306. <Setter Property="Opacity" Value=".4"/>
  307. </Trigger>
  308. </Style.Triggers>
  309. </Style>
  310. <!--endregion-->
  311. <!--region CompareSlider-->
  312. <Style x:Key="CompareSliderRepeatButtonTransparent" TargetType="RepeatButton">
  313. <Setter Property="OverridesDefaultStyle" Value="true"/>
  314. <Setter Property="Background" Value="Transparent"/>
  315. <Setter Property="Focusable" Value="false"/>
  316. <Setter Property="IsTabStop" Value="false"/>
  317. <Setter Property="Template">
  318. <Setter.Value>
  319. <ControlTemplate TargetType="RepeatButton">
  320. <ContentPresenter Content="{TemplateBinding Content}" Height="{TemplateBinding ActualHeight}" Width="{TemplateBinding ActualWidth}"/>
  321. </ControlTemplate>
  322. </Setter.Value>
  323. </Setter>
  324. </Style>
  325. <ControlTemplate x:Key="CompareSliderThumbHorizontal" TargetType="Thumb">
  326. <ControlTemplate.Resources>
  327. <Storyboard x:Key="Storyboard1">
  328. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.X)" Storyboard.TargetName="PathLeft">
  329. <EasingDoubleKeyFrame KeyTime="0" Value="-2"/>
  330. </DoubleAnimationUsingKeyFrames>
  331. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.X)" Storyboard.TargetName="PathRight">
  332. <EasingDoubleKeyFrame KeyTime="0" Value="2"/>
  333. </DoubleAnimationUsingKeyFrames>
  334. </Storyboard>
  335. <Storyboard x:Key="Storyboard2">
  336. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.X)" Storyboard.TargetName="PathLeft">
  337. <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
  338. </DoubleAnimationUsingKeyFrames>
  339. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.X)" Storyboard.TargetName="PathRight">
  340. <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
  341. </DoubleAnimationUsingKeyFrames>
  342. </Storyboard>
  343. </ControlTemplate.Resources>
  344. <hc:SimplePanel>
  345. <Border Width="1" HorizontalAlignment="Center">
  346. <Border.Background>
  347. <DrawingBrush RenderOptions.CachingHint="Cache" Viewport="0,0,1,8" ViewportUnits="Absolute" Stretch="None" TileMode="Tile">
  348. <DrawingBrush.Drawing>
  349. <DrawingGroup>
  350. <GeometryDrawing Brush="{DynamicResource BorderBrush}">
  351. <GeometryDrawing.Geometry>
  352. <GeometryGroup>
  353. <RectangleGeometry Rect="0,0,1,4" />
  354. </GeometryGroup>
  355. </GeometryDrawing.Geometry>
  356. </GeometryDrawing>
  357. </DrawingGroup>
  358. </DrawingBrush.Drawing>
  359. </DrawingBrush>
  360. </Border.Background>
  361. </Border>
  362. <Border x:Name="grip" Width="30" Height="30" CornerRadius="15" BorderThickness="1" BorderBrush="{DynamicResource BorderBrush}" Background="White">
  363. <hc:SimplePanel Width="30" Height="30" Margin="-1,-1,0,0">
  364. <Path x:Name="PathLeft" Data="{StaticResource LeftGeometry}" StrokeThickness="1" Stroke="{DynamicResource PrimaryBrush}" Margin="6,8" HorizontalAlignment="Left" Stretch="Uniform" Width="12" Height="12" RenderTransformOrigin="0.5,0.5">
  365. <Path.RenderTransform>
  366. <TransformGroup>
  367. <TranslateTransform/>
  368. </TransformGroup>
  369. </Path.RenderTransform>
  370. </Path>
  371. <Path x:Name="PathRight" Data="{StaticResource RightGeometry}" StrokeThickness="1" Stroke="{DynamicResource PrimaryBrush}" Margin="6,8" HorizontalAlignment="Right" Stretch="Uniform" Width="12" Height="12" RenderTransformOrigin="0.5,0.5">
  372. <Path.RenderTransform>
  373. <TransformGroup>
  374. <TranslateTransform/>
  375. </TransformGroup>
  376. </Path.RenderTransform>
  377. </Path>
  378. </hc:SimplePanel>
  379. </Border>
  380. </hc:SimplePanel>
  381. <ControlTemplate.Triggers>
  382. <Trigger Property="IsMouseOver" Value="true">
  383. <Setter Property="Background" TargetName="grip" Value="{DynamicResource PrimaryBrush}"/>
  384. <Setter Property="Stroke" TargetName="PathLeft" Value="White"/>
  385. <Setter Property="Stroke" TargetName="PathRight" Value="White"/>
  386. </Trigger>
  387. <Trigger Property="IsDragging" Value="true">
  388. <Trigger.EnterActions>
  389. <BeginStoryboard Storyboard="{StaticResource Storyboard1}"/>
  390. </Trigger.EnterActions>
  391. <Trigger.ExitActions>
  392. <BeginStoryboard Storyboard="{StaticResource Storyboard2}"/>
  393. </Trigger.ExitActions>
  394. </Trigger>
  395. </ControlTemplate.Triggers>
  396. </ControlTemplate>
  397. <ControlTemplate x:Key="CompareSliderHorizontal" TargetType="hc:CompareSlider">
  398. <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
  399. <hc:CompareTrack x:Name="PART_Track">
  400. <Track.DecreaseRepeatButton>
  401. <RepeatButton Command="{x:Static Slider.DecreaseLarge}" Style="{StaticResource CompareSliderRepeatButtonTransparent}">
  402. <ContentPresenter ContentSource="TargetContent" HorizontalAlignment="Left" Width="{TemplateBinding ActualWidth}"/>
  403. </RepeatButton>
  404. </Track.DecreaseRepeatButton>
  405. <Track.IncreaseRepeatButton>
  406. <RepeatButton Command="{x:Static Slider.IncreaseLarge}" Style="{StaticResource CompareSliderRepeatButtonTransparent}">
  407. <ContentPresenter ContentSource="SourceContent" HorizontalAlignment="Right" Width="{TemplateBinding ActualWidth}"/>
  408. </RepeatButton>
  409. </Track.IncreaseRepeatButton>
  410. <Track.Thumb>
  411. <Thumb x:Name="Thumb" Focusable="False" OverridesDefaultStyle="True" Template="{StaticResource CompareSliderThumbHorizontal}" Width="30" Margin="-15,0"/>
  412. </Track.Thumb>
  413. </hc:CompareTrack>
  414. </Border>
  415. </ControlTemplate>
  416. <ControlTemplate x:Key="CompareSliderThumbVertical" TargetType="Thumb">
  417. <ControlTemplate.Resources>
  418. <Storyboard x:Key="Storyboard1">
  419. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.Y)" Storyboard.TargetName="PathUp">
  420. <EasingDoubleKeyFrame KeyTime="0" Value="-2"/>
  421. </DoubleAnimationUsingKeyFrames>
  422. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.Y)" Storyboard.TargetName="PathDown">
  423. <EasingDoubleKeyFrame KeyTime="0" Value="2"/>
  424. </DoubleAnimationUsingKeyFrames>
  425. </Storyboard>
  426. <Storyboard x:Key="Storyboard2">
  427. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.Y)" Storyboard.TargetName="PathUp">
  428. <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
  429. </DoubleAnimationUsingKeyFrames>
  430. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.Y)" Storyboard.TargetName="PathDown">
  431. <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
  432. </DoubleAnimationUsingKeyFrames>
  433. </Storyboard>
  434. </ControlTemplate.Resources>
  435. <hc:SimplePanel>
  436. <Border Height="1" VerticalAlignment="Center">
  437. <Border.Background>
  438. <DrawingBrush RenderOptions.CachingHint="Cache" Viewport="0,0,8,1" ViewportUnits="Absolute" Stretch="None" TileMode="Tile">
  439. <DrawingBrush.Drawing>
  440. <DrawingGroup>
  441. <GeometryDrawing Brush="{DynamicResource BorderBrush}">
  442. <GeometryDrawing.Geometry>
  443. <GeometryGroup>
  444. <RectangleGeometry Rect="0,0,4,1" />
  445. </GeometryGroup>
  446. </GeometryDrawing.Geometry>
  447. </GeometryDrawing>
  448. </DrawingGroup>
  449. </DrawingBrush.Drawing>
  450. </DrawingBrush>
  451. </Border.Background>
  452. </Border>
  453. <Border x:Name="grip" Width="30" Height="30" CornerRadius="15" BorderThickness="1" BorderBrush="{DynamicResource BorderBrush}" Background="White">
  454. <hc:SimplePanel Width="30" Height="30" Margin="-1,-1,0,0">
  455. <Path x:Name="PathUp" Data="{StaticResource UpGeometry}" StrokeThickness="1" Stroke="{DynamicResource PrimaryBrush}" Margin="9,6" VerticalAlignment="Top" Stretch="Uniform" Width="12" Height="12" RenderTransformOrigin="0.5,0.5">
  456. <Path.RenderTransform>
  457. <TransformGroup>
  458. <TranslateTransform/>
  459. </TransformGroup>
  460. </Path.RenderTransform>
  461. </Path>
  462. <Path x:Name="PathDown" Data="{StaticResource DownGeometry}" StrokeThickness="1" Stroke="{DynamicResource PrimaryBrush}" Margin="9,6" VerticalAlignment="Bottom" Stretch="Uniform" Width="12" Height="12" RenderTransformOrigin="0.5,0.5">
  463. <Path.RenderTransform>
  464. <TransformGroup>
  465. <TranslateTransform/>
  466. </TransformGroup>
  467. </Path.RenderTransform>
  468. </Path>
  469. </hc:SimplePanel>
  470. </Border>
  471. </hc:SimplePanel>
  472. <ControlTemplate.Triggers>
  473. <Trigger Property="IsMouseOver" Value="true" SourceName="grip">
  474. <Setter Property="Background" TargetName="grip" Value="{DynamicResource PrimaryBrush}"/>
  475. <Setter Property="Stroke" TargetName="PathUp" Value="White"/>
  476. <Setter Property="Stroke" TargetName="PathDown" Value="White"/>
  477. </Trigger>
  478. <Trigger Property="IsDragging" Value="true">
  479. <Setter Property="Background" TargetName="grip" Value="{DynamicResource PrimaryBrush}"/>
  480. <Setter Property="Stroke" TargetName="PathUp" Value="White"/>
  481. <Setter Property="Stroke" TargetName="PathDown" Value="White"/>
  482. <Trigger.EnterActions>
  483. <BeginStoryboard Storyboard="{StaticResource Storyboard1}"/>
  484. </Trigger.EnterActions>
  485. <Trigger.ExitActions>
  486. <BeginStoryboard Storyboard="{StaticResource Storyboard2}"/>
  487. </Trigger.ExitActions>
  488. </Trigger>
  489. </ControlTemplate.Triggers>
  490. </ControlTemplate>
  491. <ControlTemplate x:Key="CompareSliderVertical" TargetType="hc:CompareSlider">
  492. <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
  493. <hc:CompareTrack x:Name="PART_Track">
  494. <Track.DecreaseRepeatButton>
  495. <RepeatButton Command="{x:Static Slider.DecreaseLarge}" Style="{StaticResource CompareSliderRepeatButtonTransparent}">
  496. <ContentPresenter ContentSource="TargetContent" VerticalAlignment="Bottom" Height="{TemplateBinding ActualHeight}"/>
  497. </RepeatButton>
  498. </Track.DecreaseRepeatButton>
  499. <Track.IncreaseRepeatButton>
  500. <RepeatButton Command="{x:Static Slider.IncreaseLarge}" Style="{StaticResource CompareSliderRepeatButtonTransparent}">
  501. <ContentPresenter ContentSource="SourceContent" VerticalAlignment="Top" Height="{TemplateBinding ActualHeight}"/>
  502. </RepeatButton>
  503. </Track.IncreaseRepeatButton>
  504. <Track.Thumb>
  505. <Thumb x:Name="Thumb" Focusable="False" OverridesDefaultStyle="True" Template="{StaticResource CompareSliderThumbVertical}" Height="30" Margin="0,-15" />
  506. </Track.Thumb>
  507. </hc:CompareTrack>
  508. </Border>
  509. </ControlTemplate>
  510. <Style x:Key="CompareSliderBaseStyle" TargetType="hc:CompareSlider">
  511. <Setter Property="Focusable" Value="False"/>
  512. <Setter Property="Stylus.IsPressAndHoldEnabled" Value="false"/>
  513. <Setter Property="Background" Value="Transparent"/>
  514. <Setter Property="BorderThickness" Value="1"/>
  515. <Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
  516. <Setter Property="MinWidth" Value="30"/>
  517. <Setter Property="MinHeight" Value="30"/>
  518. <Setter Property="Template" Value="{StaticResource CompareSliderHorizontal}"/>
  519. <Style.Triggers>
  520. <Trigger Property="Orientation" Value="Vertical">
  521. <Setter Property="Template" Value="{StaticResource CompareSliderVertical}"/>
  522. </Trigger>
  523. </Style.Triggers>
  524. </Style>
  525. <!--endregion-->
  526. <!--region PreviewSlider-->
  527. <Style x:Key="PreviewSliderRepeatButtonHorizontalStyle" TargetType="RepeatButton">
  528. <Setter Property="OverridesDefaultStyle" Value="true"/>
  529. <Setter Property="Background" Value="Transparent"/>
  530. <Setter Property="Focusable" Value="false"/>
  531. <Setter Property="IsTabStop" Value="false"/>
  532. <Setter Property="Template">
  533. <Setter.Value>
  534. <ControlTemplate TargetType="RepeatButton">
  535. <Border Background="Transparent" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}">
  536. <Rectangle Fill="{TemplateBinding Background}" Height="2"/>
  537. </Border>
  538. </ControlTemplate>
  539. </Setter.Value>
  540. </Setter>
  541. </Style>
  542. <Style x:Key="PreviewSliderRepeatButtonVerticalStyle" TargetType="RepeatButton">
  543. <Setter Property="OverridesDefaultStyle" Value="true"/>
  544. <Setter Property="Background" Value="Transparent"/>
  545. <Setter Property="Focusable" Value="false"/>
  546. <Setter Property="IsTabStop" Value="false"/>
  547. <Setter Property="Template">
  548. <Setter.Value>
  549. <ControlTemplate TargetType="RepeatButton">
  550. <Border Background="Transparent" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}">
  551. <Rectangle Fill="{TemplateBinding Background}" Width="2"/>
  552. </Border>
  553. </ControlTemplate>
  554. </Setter.Value>
  555. </Setter>
  556. </Style>
  557. <ControlTemplate x:Key="PreviewSliderThumb" TargetType="Thumb">
  558. <Border Effect="{StaticResource EffectShadow1}" Name="BorderDot" BorderThickness="0" BorderBrush="{DynamicResource PrimaryBrush}" Width="18" Height="18" Background="White" CornerRadius="9"/>
  559. <ControlTemplate.Triggers>
  560. <Trigger Property="IsMouseOver" Value="True">
  561. <Setter Property="Effect" Value="{StaticResource EffectShadow2}"/>
  562. </Trigger>
  563. <EventTrigger RoutedEvent="PreviewMouseLeftButtonDown">
  564. <EventTrigger.Actions>
  565. <BeginStoryboard>
  566. <Storyboard>
  567. <ThicknessAnimation To="2" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  568. </Storyboard>
  569. </BeginStoryboard>
  570. </EventTrigger.Actions>
  571. </EventTrigger>
  572. <EventTrigger RoutedEvent="PreviewMouseLeftButtonUp">
  573. <EventTrigger.Actions>
  574. <BeginStoryboard>
  575. <Storyboard>
  576. <ThicknessAnimation To="0" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  577. </Storyboard>
  578. </BeginStoryboard>
  579. </EventTrigger.Actions>
  580. </EventTrigger>
  581. </ControlTemplate.Triggers>
  582. </ControlTemplate>
  583. <ControlTemplate x:Key="PreviewSliderHorizontal" TargetType="hc:PreviewSlider">
  584. <hc:SimplePanel>
  585. <Border x:Name="TrackBackground" Background="{TemplateBinding Background}" Height="2" VerticalAlignment="center" Margin="9,0"/>
  586. <Track VerticalAlignment="center" Margin="9,0" x:Name="PART_Track">
  587. <Track.DecreaseRepeatButton>
  588. <RepeatButton Command="{x:Static Slider.DecreaseLarge}" Background="{DynamicResource PrimaryBrush}" Style="{StaticResource PreviewSliderRepeatButtonHorizontalStyle}"/>
  589. </Track.DecreaseRepeatButton>
  590. <Track.IncreaseRepeatButton>
  591. <RepeatButton Command="{x:Static Slider.IncreaseLarge}" Style="{StaticResource PreviewSliderRepeatButtonHorizontalStyle}"/>
  592. </Track.IncreaseRepeatButton>
  593. <Track.Thumb>
  594. <Thumb Margin="-9,0" x:Name="PART_Thumb" Focusable="False" Height="18" OverridesDefaultStyle="True" Template="{StaticResource PreviewSliderThumb}" VerticalAlignment="Center" Width="18"/>
  595. </Track.Thumb>
  596. </Track>
  597. </hc:SimplePanel>
  598. </ControlTemplate>
  599. <ControlTemplate x:Key="PreviewSliderVertical" TargetType="hc:PreviewSlider">
  600. <hc:SimplePanel>
  601. <Border x:Name="TrackBackground" Background="{TemplateBinding Background}" Width="2" HorizontalAlignment="center" Margin="0,9"/>
  602. <Track HorizontalAlignment="center" Margin="0,9" x:Name="PART_Track">
  603. <Track.DecreaseRepeatButton>
  604. <RepeatButton Command="{x:Static Slider.DecreaseLarge}" Background="{DynamicResource PrimaryBrush}" Style="{StaticResource PreviewSliderRepeatButtonVerticalStyle}"/>
  605. </Track.DecreaseRepeatButton>
  606. <Track.IncreaseRepeatButton>
  607. <RepeatButton Command="{x:Static Slider.IncreaseLarge}" Style="{StaticResource PreviewSliderRepeatButtonVerticalStyle}"/>
  608. </Track.IncreaseRepeatButton>
  609. <Track.Thumb>
  610. <Thumb Margin="0,-9" x:Name="PART_Thumb" Focusable="False" Height="18" OverridesDefaultStyle="True" Template="{StaticResource PreviewSliderThumb}" HorizontalAlignment="Center" Width="18"/>
  611. </Track.Thumb>
  612. </Track>
  613. </hc:SimplePanel>
  614. </ControlTemplate>
  615. <Style x:Key="PreviewSliderBaseStyle" TargetType="hc:PreviewSlider">
  616. <Setter Property="Stylus.IsPressAndHoldEnabled" Value="false"/>
  617. <Setter Property="IsMoveToPointEnabled" Value="True"/>
  618. <Setter Property="Background" Value="{DynamicResource SecondaryRegionBrush}"/>
  619. <Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
  620. <Setter Property="Template" Value="{StaticResource PreviewSliderHorizontal}"/>
  621. <Style.Triggers>
  622. <Trigger Property="Orientation" Value="Vertical">
  623. <Setter Property="Template" Value="{StaticResource PreviewSliderVertical}"/>
  624. </Trigger>
  625. <Trigger Property="IsEnabled" Value="False">
  626. <Setter Property="Opacity" Value=".4"/>
  627. </Trigger>
  628. </Style.Triggers>
  629. </Style>
  630. <!--endregion-->
  631. <!--region RangeSlider-->
  632. <ControlTemplate x:Key="RangeSliderThumb" TargetType="hc:RangeThumb">
  633. <Border Effect="{StaticResource EffectShadow1}" Name="BorderDot" BorderThickness="0" BorderBrush="{DynamicResource PrimaryBrush}" Width="18" Height="18" Background="White" CornerRadius="9"/>
  634. <ControlTemplate.Triggers>
  635. <Trigger Property="IsMouseOver" Value="True">
  636. <Setter Property="Effect" Value="{StaticResource EffectShadow2}"/>
  637. </Trigger>
  638. <EventTrigger RoutedEvent="PreviewMouseLeftButtonDown">
  639. <EventTrigger.Actions>
  640. <BeginStoryboard>
  641. <Storyboard>
  642. <ThicknessAnimation To="2" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  643. </Storyboard>
  644. </BeginStoryboard>
  645. </EventTrigger.Actions>
  646. </EventTrigger>
  647. <EventTrigger RoutedEvent="PreviewMouseLeftButtonUp">
  648. <EventTrigger.Actions>
  649. <BeginStoryboard>
  650. <Storyboard>
  651. <ThicknessAnimation To="0" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  652. </Storyboard>
  653. </BeginStoryboard>
  654. </EventTrigger.Actions>
  655. </EventTrigger>
  656. </ControlTemplate.Triggers>
  657. </ControlTemplate>
  658. <ControlTemplate x:Key="TipRangeSliderThumbHorizontalTop" TargetType="hc:RangeThumb">
  659. <hc:AxleCanvas>
  660. <Label Name="LabelValue" IsHitTestVisible="False" Opacity="0" Canvas.Bottom="28" Style="{StaticResource LabelPrimary}" Content="{TemplateBinding Content}" ContentStringFormat="{Binding Path=(hc:TipElement.StringFormat),RelativeSource={RelativeSource AncestorType=hc:RangeSlider}}"/>
  661. <Border Canvas.Bottom="0" Effect="{StaticResource EffectShadow1}" Name="BorderDot" BorderThickness="0" BorderBrush="{DynamicResource PrimaryBrush}" Width="18" Height="18" Background="White" CornerRadius="9"/>
  662. </hc:AxleCanvas>
  663. <ControlTemplate.Triggers>
  664. <Trigger Property="IsMouseOver" Value="True">
  665. <Setter Property="Effect" Value="{StaticResource EffectShadow2}" TargetName="BorderDot"/>
  666. <Setter Property="Opacity" Value="1" TargetName="LabelValue"/>
  667. </Trigger>
  668. <EventTrigger RoutedEvent="PreviewMouseLeftButtonDown">
  669. <EventTrigger.Actions>
  670. <BeginStoryboard>
  671. <Storyboard>
  672. <ThicknessAnimation To="2" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  673. </Storyboard>
  674. </BeginStoryboard>
  675. </EventTrigger.Actions>
  676. </EventTrigger>
  677. <EventTrigger RoutedEvent="PreviewMouseLeftButtonUp">
  678. <EventTrigger.Actions>
  679. <BeginStoryboard>
  680. <Storyboard>
  681. <ThicknessAnimation To="0" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  682. </Storyboard>
  683. </BeginStoryboard>
  684. </EventTrigger.Actions>
  685. </EventTrigger>
  686. </ControlTemplate.Triggers>
  687. </ControlTemplate>
  688. <ControlTemplate x:Key="TipRangeSliderThumbHorizontalBottom" TargetType="hc:RangeThumb">
  689. <hc:AxleCanvas>
  690. <Label Name="LabelValue" IsHitTestVisible="False" Opacity="0" Canvas.Top="28" Style="{StaticResource LabelPrimary}" Content="{TemplateBinding Content}" ContentStringFormat="{Binding Path=(hc:TipElement.StringFormat),RelativeSource={RelativeSource AncestorType=hc:RangeSlider}}"/>
  691. <Border Canvas.Bottom="0" Effect="{StaticResource EffectShadow1}" Name="BorderDot" BorderThickness="0" BorderBrush="{DynamicResource PrimaryBrush}" Width="18" Height="18" Background="White" CornerRadius="9"/>
  692. </hc:AxleCanvas>
  693. <ControlTemplate.Triggers>
  694. <Trigger Property="IsMouseOver" Value="True">
  695. <Setter Property="Effect" Value="{StaticResource EffectShadow2}" TargetName="BorderDot"/>
  696. <Setter Property="Opacity" Value="1" TargetName="LabelValue"/>
  697. </Trigger>
  698. <EventTrigger RoutedEvent="PreviewMouseLeftButtonDown">
  699. <EventTrigger.Actions>
  700. <BeginStoryboard>
  701. <Storyboard>
  702. <ThicknessAnimation To="2" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  703. </Storyboard>
  704. </BeginStoryboard>
  705. </EventTrigger.Actions>
  706. </EventTrigger>
  707. <EventTrigger RoutedEvent="PreviewMouseLeftButtonUp">
  708. <EventTrigger.Actions>
  709. <BeginStoryboard>
  710. <Storyboard>
  711. <ThicknessAnimation To="0" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  712. </Storyboard>
  713. </BeginStoryboard>
  714. </EventTrigger.Actions>
  715. </EventTrigger>
  716. </ControlTemplate.Triggers>
  717. </ControlTemplate>
  718. <ControlTemplate x:Key="TipRangeSliderThumbVerticalLeft" TargetType="hc:RangeThumb">
  719. <hc:AxleCanvas Orientation="Vertical">
  720. <Label Name="LabelValue" IsHitTestVisible="False" Opacity="0" Canvas.Right="28" Style="{StaticResource LabelPrimary}" Content="{TemplateBinding Content}" ContentStringFormat="{Binding Path=(hc:TipElement.StringFormat),RelativeSource={RelativeSource AncestorType=hc:RangeSlider}}"/>
  721. <Border Canvas.Right="0" Effect="{StaticResource EffectShadow1}" Name="BorderDot" BorderThickness="0" BorderBrush="{DynamicResource PrimaryBrush}" Width="18" Height="18" Background="White" CornerRadius="9"/>
  722. </hc:AxleCanvas>
  723. <ControlTemplate.Triggers>
  724. <Trigger Property="IsMouseOver" Value="True">
  725. <Setter Property="Effect" Value="{StaticResource EffectShadow2}" TargetName="BorderDot"/>
  726. <Setter Property="Opacity" Value="1" TargetName="LabelValue"/>
  727. </Trigger>
  728. <EventTrigger RoutedEvent="PreviewMouseLeftButtonDown">
  729. <EventTrigger.Actions>
  730. <BeginStoryboard>
  731. <Storyboard>
  732. <ThicknessAnimation To="2" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  733. </Storyboard>
  734. </BeginStoryboard>
  735. </EventTrigger.Actions>
  736. </EventTrigger>
  737. <EventTrigger RoutedEvent="PreviewMouseLeftButtonUp">
  738. <EventTrigger.Actions>
  739. <BeginStoryboard>
  740. <Storyboard>
  741. <ThicknessAnimation To="0" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  742. </Storyboard>
  743. </BeginStoryboard>
  744. </EventTrigger.Actions>
  745. </EventTrigger>
  746. </ControlTemplate.Triggers>
  747. </ControlTemplate>
  748. <ControlTemplate x:Key="TipRangeSliderThumbVerticalRight" TargetType="hc:RangeThumb">
  749. <hc:AxleCanvas Orientation="Vertical">
  750. <Label Name="LabelValue" IsHitTestVisible="False" Opacity="0" Canvas.Left="28" Style="{StaticResource LabelPrimary}" Content="{TemplateBinding Content}" ContentStringFormat="{Binding Path=(hc:TipElement.StringFormat),RelativeSource={RelativeSource AncestorType=hc:RangeSlider}}"/>
  751. <Border Canvas.Right="0" Effect="{StaticResource EffectShadow1}" Name="BorderDot" BorderThickness="0" BorderBrush="{DynamicResource PrimaryBrush}" Width="18" Height="18" Background="White" CornerRadius="9"/>
  752. </hc:AxleCanvas>
  753. <ControlTemplate.Triggers>
  754. <Trigger Property="IsMouseOver" Value="True">
  755. <Setter Property="Effect" Value="{StaticResource EffectShadow2}" TargetName="BorderDot"/>
  756. <Setter Property="Opacity" Value="1" TargetName="LabelValue"/>
  757. </Trigger>
  758. <EventTrigger RoutedEvent="PreviewMouseLeftButtonDown">
  759. <EventTrigger.Actions>
  760. <BeginStoryboard>
  761. <Storyboard>
  762. <ThicknessAnimation To="2" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  763. </Storyboard>
  764. </BeginStoryboard>
  765. </EventTrigger.Actions>
  766. </EventTrigger>
  767. <EventTrigger RoutedEvent="PreviewMouseLeftButtonUp">
  768. <EventTrigger.Actions>
  769. <BeginStoryboard>
  770. <Storyboard>
  771. <ThicknessAnimation To="0" Duration="0:0:.1" Storyboard.TargetName="BorderDot" Storyboard.TargetProperty="BorderThickness"/>
  772. </Storyboard>
  773. </BeginStoryboard>
  774. </EventTrigger.Actions>
  775. </EventTrigger>
  776. </ControlTemplate.Triggers>
  777. </ControlTemplate>
  778. <ControlTemplate x:Key="RangeSliderHorizontal" TargetType="hc:RangeSlider">
  779. <Grid>
  780. <Grid.RowDefinitions>
  781. <RowDefinition Height="Auto"/>
  782. <RowDefinition Height="Auto" MinHeight="{TemplateBinding MinHeight}"/>
  783. <RowDefinition Height="Auto"/>
  784. </Grid.RowDefinitions>
  785. <TickBar x:Name="TopTick" Width="{Binding ActualWidth,ElementName=TrackBackground}" Ticks="{TemplateBinding Ticks}" TickFrequency="{TemplateBinding TickFrequency}" Minimum="{TemplateBinding Minimum}" Maximum="{TemplateBinding Maximum}" IsDirectionReversed="{TemplateBinding IsDirectionReversed}" Fill="{TemplateBinding Foreground}" Height="4" Margin="0,0,0,2" Placement="Top" Grid.Row="0" Visibility="Collapsed"/>
  786. <TickBar x:Name="BottomTick" Width="{Binding ActualWidth,ElementName=TrackBackground}" Ticks="{TemplateBinding Ticks}" TickFrequency="{TemplateBinding TickFrequency}" Minimum="{TemplateBinding Minimum}" Maximum="{TemplateBinding Maximum}" IsDirectionReversed="{TemplateBinding IsDirectionReversed}" Fill="{TemplateBinding Foreground}" Height="4" Margin="0,2,0,0" Placement="Bottom" Grid.Row="2" Visibility="Collapsed"/>
  787. <Border x:Name="TrackBackground" Background="{TemplateBinding Background}" Margin="9,0" Grid.Row="1" Height="2" VerticalAlignment="center"/>
  788. <hc:RangeTrack IsDirectionReversed="{TemplateBinding IsDirectionReversed}" Orientation="{TemplateBinding Orientation}" ValueStart="{TemplateBinding ValueStart}" ValueEnd="{TemplateBinding ValueEnd}" Minimum="{TemplateBinding Minimum}" Maximum="{TemplateBinding Maximum}" Margin="9,0" x:Name="PART_Track" Grid.Row="1">
  789. <hc:RangeTrack.DecreaseRepeatButton>
  790. <RepeatButton Interval="{TemplateBinding Interval}" Delay="{TemplateBinding Delay}" Command="{x:Static hc:RangeSlider.DecreaseLarge}" Style="{StaticResource SliderRepeatButtonHorizontalStyle}"/>
  791. </hc:RangeTrack.DecreaseRepeatButton>
  792. <hc:RangeTrack.CenterRepeatButton>
  793. <RepeatButton Interval="{TemplateBinding Interval}" Delay="{TemplateBinding Delay}" Command="{x:Static hc:RangeSlider.CenterLarge}" Background="{DynamicResource PrimaryBrush}" Style="{StaticResource SliderRepeatButtonHorizontalStyle}"/>
  794. </hc:RangeTrack.CenterRepeatButton>
  795. <hc:RangeTrack.IncreaseRepeatButton>
  796. <RepeatButton Interval="{TemplateBinding Interval}" Delay="{TemplateBinding Delay}" Command="{x:Static hc:RangeSlider.IncreaseLarge}" Style="{StaticResource SliderRepeatButtonHorizontalStyle}"/>
  797. </hc:RangeTrack.IncreaseRepeatButton>
  798. <hc:RangeTrack.ThumbStart>
  799. <hc:RangeThumb Content="{TemplateBinding ValueStart}" ClipToBounds="False" Width="18" Margin="-9,0" Height="18" x:Name="ThumbStart" Focusable="False" OverridesDefaultStyle="True" Template="{StaticResource RangeSliderThumb}" VerticalAlignment="Center"/>
  800. </hc:RangeTrack.ThumbStart>
  801. <hc:RangeTrack.ThumbEnd>
  802. <hc:RangeThumb Content="{TemplateBinding ValueEnd}" ClipToBounds="False" Width="18" Margin="-9,0" Height="18" x:Name="ThumbEnd" Focusable="False" OverridesDefaultStyle="True" Template="{StaticResource RangeSliderThumb}" VerticalAlignment="Center"/>
  803. </hc:RangeTrack.ThumbEnd>
  804. </hc:RangeTrack>
  805. </Grid>
  806. <ControlTemplate.Triggers>
  807. <MultiTrigger>
  808. <MultiTrigger.Conditions>
  809. <Condition Property="hc:TipElement.Placement" Value="Top"/>
  810. <Condition Property="hc:TipElement.Visibility" Value="Visible"/>
  811. </MultiTrigger.Conditions>
  812. <Setter Property="Template" TargetName="ThumbStart" Value="{StaticResource TipRangeSliderThumbHorizontalTop}"/>
  813. <Setter Property="Template" TargetName="ThumbEnd" Value="{StaticResource TipRangeSliderThumbHorizontalTop}"/>
  814. </MultiTrigger>
  815. <MultiTrigger>
  816. <MultiTrigger.Conditions>
  817. <Condition Property="hc:TipElement.Placement" Value="Bottom"/>
  818. <Condition Property="hc:TipElement.Visibility" Value="Visible"/>
  819. </MultiTrigger.Conditions>
  820. <Setter Property="Template" TargetName="ThumbStart" Value="{StaticResource TipRangeSliderThumbHorizontalBottom}"/>
  821. <Setter Property="Template" TargetName="ThumbEnd" Value="{StaticResource TipRangeSliderThumbHorizontalBottom}"/>
  822. </MultiTrigger>
  823. <Trigger Property="TickPlacement" Value="TopLeft">
  824. <Setter Property="Visibility" TargetName="TopTick" Value="Visible"/>
  825. </Trigger>
  826. <Trigger Property="TickPlacement" Value="BottomRight">
  827. <Setter Property="Visibility" TargetName="BottomTick" Value="Visible"/>
  828. </Trigger>
  829. <Trigger Property="TickPlacement" Value="Both">
  830. <Setter Property="Visibility" TargetName="TopTick" Value="Visible"/>
  831. <Setter Property="Visibility" TargetName="BottomTick" Value="Visible"/>
  832. </Trigger>
  833. </ControlTemplate.Triggers>
  834. </ControlTemplate>
  835. <ControlTemplate x:Key="RangeSliderVertical" TargetType="hc:RangeSlider">
  836. <Grid>
  837. <Grid.ColumnDefinitions>
  838. <ColumnDefinition Width="Auto"/>
  839. <ColumnDefinition MinWidth="{TemplateBinding MinWidth}" Width="Auto"/>
  840. <ColumnDefinition Width="Auto"/>
  841. </Grid.ColumnDefinitions>
  842. <TickBar x:Name="TopTick" Height="{Binding ActualHeight,ElementName=TrackBackground}" Ticks="{TemplateBinding Ticks}" TickFrequency="{TemplateBinding TickFrequency}" Minimum="{TemplateBinding Minimum}" Maximum="{TemplateBinding Maximum}" IsDirectionReversed="{TemplateBinding IsDirectionReversed}" Grid.Column="0" Fill="{TemplateBinding Foreground}" Margin="0,0,2,0" Placement="Left" Visibility="Collapsed" Width="4"/>
  843. <TickBar x:Name="BottomTick" Height="{Binding ActualHeight,ElementName=TrackBackground}" Ticks="{TemplateBinding Ticks}" TickFrequency="{TemplateBinding TickFrequency}" Minimum="{TemplateBinding Minimum}" Maximum="{TemplateBinding Maximum}" IsDirectionReversed="{TemplateBinding IsDirectionReversed}" Grid.Column="2" Fill="{TemplateBinding Foreground}" Margin="2,0,0,0" Placement="Right" Visibility="Collapsed" Width="4"/>
  844. <Border x:Name="TrackBackground" Background="{TemplateBinding Background}" Margin="0,9" Grid.Column="1" HorizontalAlignment="center" Width="2"/>
  845. <hc:RangeTrack IsDirectionReversed="{TemplateBinding IsDirectionReversed}" Orientation="{TemplateBinding Orientation}" ValueStart="{TemplateBinding ValueStart}" ValueEnd="{TemplateBinding ValueEnd}" Minimum="{TemplateBinding Minimum}" Maximum="{TemplateBinding Maximum}" Margin="0,9" x:Name="PART_Track" Grid.Column="1">
  846. <hc:RangeTrack.DecreaseRepeatButton>
  847. <RepeatButton Interval="{TemplateBinding Interval}" Delay="{TemplateBinding Delay}" Command="{x:Static hc:RangeSlider.DecreaseLarge}" Style="{StaticResource SliderRepeatButtonVerticalStyle}"/>
  848. </hc:RangeTrack.DecreaseRepeatButton>
  849. <hc:RangeTrack.CenterRepeatButton>
  850. <RepeatButton Interval="{TemplateBinding Interval}" Delay="{TemplateBinding Delay}" Command="{x:Static hc:RangeSlider.CenterLarge}" Background="{DynamicResource PrimaryBrush}" Style="{StaticResource SliderRepeatButtonVerticalStyle}"/>
  851. </hc:RangeTrack.CenterRepeatButton>
  852. <hc:RangeTrack.IncreaseRepeatButton>
  853. <RepeatButton Interval="{TemplateBinding Interval}" Delay="{TemplateBinding Delay}" Command="{x:Static hc:RangeSlider.IncreaseLarge}" Style="{StaticResource SliderRepeatButtonVerticalStyle}"/>
  854. </hc:RangeTrack.IncreaseRepeatButton>
  855. <hc:RangeTrack.ThumbStart>
  856. <hc:RangeThumb Content="{TemplateBinding ValueStart}" Margin="0,-9" x:Name="ThumbStart" Focusable="False" Height="18" OverridesDefaultStyle="True" Template="{StaticResource RangeSliderThumb}" HorizontalAlignment="Center" Width="18"/>
  857. </hc:RangeTrack.ThumbStart>
  858. <hc:RangeTrack.ThumbEnd>
  859. <hc:RangeThumb Content="{TemplateBinding ValueEnd}" Margin="0,-9" x:Name="ThumbEnd" Focusable="False" Height="18" OverridesDefaultStyle="True" Template="{StaticResource RangeSliderThumb}" HorizontalAlignment="Center" Width="18"/>
  860. </hc:RangeTrack.ThumbEnd>
  861. </hc:RangeTrack>
  862. </Grid>
  863. <ControlTemplate.Triggers>
  864. <MultiTrigger>
  865. <MultiTrigger.Conditions>
  866. <Condition Property="hc:TipElement.Placement" Value="Left"/>
  867. <Condition Property="hc:TipElement.Visibility" Value="Visible"/>
  868. </MultiTrigger.Conditions>
  869. <Setter Property="Template" TargetName="ThumbStart" Value="{StaticResource TipRangeSliderThumbVerticalLeft}"/>
  870. <Setter Property="Template" TargetName="ThumbEnd" Value="{StaticResource TipRangeSliderThumbVerticalLeft}"/>
  871. </MultiTrigger>
  872. <MultiTrigger>
  873. <MultiTrigger.Conditions>
  874. <Condition Property="hc:TipElement.Placement" Value="Right"/>
  875. <Condition Property="hc:TipElement.Visibility" Value="Visible"/>
  876. </MultiTrigger.Conditions>
  877. <Setter Property="Template" TargetName="ThumbStart" Value="{StaticResource TipRangeSliderThumbVerticalRight}"/>
  878. <Setter Property="Template" TargetName="ThumbEnd" Value="{StaticResource TipRangeSliderThumbVerticalRight}"/>
  879. </MultiTrigger>
  880. <Trigger Property="TickPlacement" Value="TopLeft">
  881. <Setter Property="Visibility" TargetName="TopTick" Value="Visible"/>
  882. </Trigger>
  883. <Trigger Property="TickPlacement" Value="BottomRight">
  884. <Setter Property="Visibility" TargetName="BottomTick" Value="Visible"/>
  885. </Trigger>
  886. <Trigger Property="TickPlacement" Value="Both">
  887. <Setter Property="Visibility" TargetName="TopTick" Value="Visible"/>
  888. <Setter Property="Visibility" TargetName="BottomTick" Value="Visible"/>
  889. </Trigger>
  890. </ControlTemplate.Triggers>
  891. </ControlTemplate>
  892. <Style x:Key="RangeSliderBaseStyle" BasedOn="{StaticResource BaseStyle}" TargetType="hc:RangeSlider">
  893. <Setter Property="Stylus.IsPressAndHoldEnabled" Value="false"/>
  894. <Setter Property="Background" Value="{DynamicResource SecondaryRegionBrush}"/>
  895. <Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
  896. <Setter Property="Foreground" Value="{DynamicResource DarkPrimaryBrush}"/>
  897. <Setter Property="Template" Value="{StaticResource RangeSliderHorizontal}"/>
  898. <Style.Triggers>
  899. <Trigger Property="Orientation" Value="Vertical">
  900. <Setter Property="Template" Value="{StaticResource RangeSliderVertical}"/>
  901. </Trigger>
  902. <Trigger Property="IsEnabled" Value="False">
  903. <Setter Property="Opacity" Value=".4"/>
  904. </Trigger>
  905. </Style.Triggers>
  906. </Style>
  907. <!--endregion-->
  908. </ResourceDictionary>