/Application/GUI/Controls/EnhancedSlider.xaml

http://yet-another-music-application.googlecode.com/ · XAML · 113 lines · 102 code · 9 blank · 2 comment · 0 complexity · cb0ce5dbef10177d18cb1da10c93f9da MD5 · raw file

  1. <Slider x:Class="Stoffi.EnhancedSlider"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:local="clr-namespace:Stoffi"
  7. mc:Ignorable="d"
  8. d:DesignWidth="800"
  9. d:DesignHeight="30"
  10. Value="1">
  11. <Slider.Resources>
  12. <LinearGradientBrush x:Key="AeroSeekBackground" EndPoint="0,1" StartPoint="0,0">
  13. <GradientStop Color="#55888888" Offset="0.1"/>
  14. <GradientStop Color="#55FFFFFF" Offset="0.9"/>
  15. </LinearGradientBrush>
  16. <LinearGradientBrush x:Key="AeroSeekBorder" EndPoint="0,1" StartPoint="0,0">
  17. <GradientStop Color="#FFAEB1AF" Offset="0.1"/>
  18. <GradientStop Color="White" Offset="0.9"/>
  19. </LinearGradientBrush>
  20. <LinearGradientBrush x:Key="AeroSeekSecondValueFill" EndPoint="0,1" StartPoint="0,0">
  21. <GradientStop Color="#88555555" Offset="0.1"/>
  22. <GradientStop Color="#88CCCCCC" Offset="0.9"/>
  23. </LinearGradientBrush>
  24. <Style x:Key="AeroSeekValueFill" TargetType="{x:Type RepeatButton}">
  25. <Setter Property="OverridesDefaultStyle" Value="true"/>
  26. <Setter Property="IsTabStop" Value="false"/>
  27. <Setter Property="Focusable" Value="false"/>
  28. <Setter Property="Template">
  29. <Setter.Value>
  30. <ControlTemplate TargetType="{x:Type RepeatButton}">
  31. <Border BorderThickness="1" CornerRadius="3,0,0,3">
  32. <Border.Background>
  33. <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
  34. <GradientStop Color="#FF333333" Offset="0.1"/>
  35. <GradientStop Color="#FFCCCCCC" Offset="0.9"/>
  36. </LinearGradientBrush>
  37. </Border.Background>
  38. </Border>
  39. </ControlTemplate>
  40. </Setter.Value>
  41. </Setter>
  42. </Style>
  43. <Style x:Key="AeroSeekRightFill" TargetType="{x:Type RepeatButton}">
  44. <Setter Property="OverridesDefaultStyle" Value="true"/>
  45. <Setter Property="IsTabStop" Value="false"/>
  46. <Setter Property="Focusable" Value="false"/>
  47. <Setter Property="Template">
  48. <Setter.Value>
  49. <ControlTemplate TargetType="{x:Type RepeatButton}">
  50. <Rectangle Fill="Transparent"/>
  51. </ControlTemplate>
  52. </Setter.Value>
  53. </Setter>
  54. </Style>
  55. <!-- Aero styles -->
  56. <Style x:Key="AeroSeekStyle" TargetType="{x:Type Slider}">
  57. </Style>
  58. <Style x:Key="AeroVolumeStyle" TargetType="{x:Type Slider}">
  59. </Style>
  60. <!-- Classic styles -->
  61. <Style x:Key="ClassicSeekStyle" TargetType="{x:Type Slider}">
  62. </Style>
  63. <Style x:Key="ClassicVolumeStyle" TargetType="{x:Type Slider}">
  64. </Style>
  65. </Slider.Resources>
  66. <Slider.Style>
  67. <Style TargetType="{x:Type Slider}">
  68. <Setter Property="Stylus.IsPressAndHoldEnabled" Value="false"/>
  69. <Setter Property="Background" Value="Transparent"/>
  70. <Setter Property="Foreground" Value="#FFC4C4C4"/>
  71. <Setter Property="Template">
  72. <Setter.Value>
  73. <ControlTemplate TargetType="{x:Type Slider}">
  74. <Border SnapsToDevicePixels="true" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
  75. <Grid>
  76. <Grid.RowDefinitions>
  77. <RowDefinition Height="*"/>
  78. </Grid.RowDefinitions>
  79. <Border x:Name="TrackBackground" Grid.Row="1" Background="{DynamicResource AeroSeekBackground}" BorderBrush="{DynamicResource AeroSeekBorder}" BorderThickness="1" CornerRadius="3">
  80. <Border x:Name="SecondValueIndicator"
  81. Background="{DynamicResource AeroSeekSecondValueFill}"
  82. Width="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=SecondValueWidth, Mode=TwoWay}"
  83. HorizontalAlignment="Left">
  84. </Border>
  85. </Border>
  86. <Track x:Name="PART_Track" Grid.Row="1">
  87. <Track.DecreaseRepeatButton>
  88. <RepeatButton Style="{DynamicResource AeroSeekValueFill}" Command="{x:Static Slider.DecreaseLarge}"/>
  89. </Track.DecreaseRepeatButton>
  90. <Track.IncreaseRepeatButton>
  91. <RepeatButton Style="{DynamicResource AeroSeekRightFill}" Command="{x:Static Slider.IncreaseLarge}"/>
  92. </Track.IncreaseRepeatButton>
  93. <Track.Thumb>
  94. <Thumb x:Name="Thumb" Width="0"/>
  95. </Track.Thumb>
  96. </Track>
  97. </Grid>
  98. </Border>
  99. </ControlTemplate>
  100. </Setter.Value>
  101. </Setter>
  102. </Style>
  103. </Slider.Style>
  104. </Slider>