275 lines
12 KiB
Plaintext
275 lines
12 KiB
Plaintext
|
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||
|
|
||
|
<!-- SCROLLBAR -->
|
||
|
|
||
|
<!--
|
||
|
Refs: http://www.codeproject.com/Articles/37366/Styling-A-ScrollViewer-Scrollbar-In-WPF
|
||
|
All the following is required to Re-Style the ScrollViewer, see
|
||
|
http://msdn2.microsoft.com/en-us/library/aa970847(VS.85).aspx
|
||
|
http://msdn2.microsoft.com/en-us/library/ms742173(VS.85).aspx
|
||
|
for the default Stles that the ScrollViewer has out of the box
|
||
|
-->
|
||
|
|
||
|
<!-- Brushes used in Styling of ScrollViewer -->
|
||
|
<SolidColorBrush x:Key="StandardBorderBrush" Color="#999" />
|
||
|
<SolidColorBrush x:Key="StandardBackgroundBrush" Color="#FFF" />
|
||
|
<SolidColorBrush x:Key="HoverBorderBrush" Color="#DDD" />
|
||
|
<SolidColorBrush x:Key="SelectedBackgroundBrush" Color="Gray" />
|
||
|
<SolidColorBrush x:Key="SelectedForegroundBrush" Color="White" />
|
||
|
<SolidColorBrush x:Key="DisabledForegroundBrush" Color="#999" />
|
||
|
<SolidColorBrush x:Key="NormalBrush" Color="#FFF" />
|
||
|
<SolidColorBrush x:Key="NormalBorderBrush" Color="#999" />
|
||
|
<SolidColorBrush x:Key="HorizontalNormalBrush" Color="#FFF" />
|
||
|
<SolidColorBrush x:Key="HorizontalNormalBorderBrush" Color="#999" />
|
||
|
<LinearGradientBrush x:Key="ListBoxBackgroundBrush" StartPoint="0,0" EndPoint="1,0.001">
|
||
|
<GradientBrush.GradientStops>
|
||
|
<GradientStopCollection>
|
||
|
<GradientStop Offset="0.0" Color="White" />
|
||
|
<GradientStop Offset="0.6" Color="White" />
|
||
|
<GradientStop Offset="1.2" Color="#DDDDDD" />
|
||
|
</GradientStopCollection>
|
||
|
</GradientBrush.GradientStops>
|
||
|
</LinearGradientBrush>
|
||
|
<LinearGradientBrush x:Key="StandardBrush" StartPoint="0,0" EndPoint="0,1">
|
||
|
<GradientBrush.GradientStops>
|
||
|
<GradientStopCollection>
|
||
|
<GradientStop Offset="0.0" Color="#FFF" />
|
||
|
<GradientStop Offset="1.0" Color="#CCC" />
|
||
|
</GradientStopCollection>
|
||
|
</GradientBrush.GradientStops>
|
||
|
</LinearGradientBrush>
|
||
|
<SolidColorBrush x:Key="GlyphBrush" Color="#444" />
|
||
|
<LinearGradientBrush x:Key="PressedBrush" StartPoint="0,0" EndPoint="0,1">
|
||
|
<GradientBrush.GradientStops>
|
||
|
<GradientStopCollection>
|
||
|
<GradientStop Offset="0.0" Color="#BBB" />
|
||
|
<GradientStop Offset="0.1" Color="#EEE" />
|
||
|
<GradientStop Offset="0.9" Color="#EEE" />
|
||
|
<GradientStop Offset="1.0" Color="#FFF" />
|
||
|
</GradientStopCollection>
|
||
|
</GradientBrush.GradientStops>
|
||
|
</LinearGradientBrush>
|
||
|
|
||
|
<!-- SrollViewer ScrollBar Repeat Buttons (at each end) -->
|
||
|
<Style x:Key="ScrollBarLineButton" TargetType="{x:Type RepeatButton}">
|
||
|
<Setter Property="SnapsToDevicePixels" Value="True" />
|
||
|
<Setter Property="OverridesDefaultStyle" Value="true" />
|
||
|
<Setter Property="Focusable" Value="false" />
|
||
|
<Setter Property="Template">
|
||
|
<Setter.Value>
|
||
|
<ControlTemplate TargetType="{x:Type RepeatButton}">
|
||
|
<Border
|
||
|
Name="Border"
|
||
|
Margin="1"
|
||
|
Background="{StaticResource NormalBrush}"
|
||
|
BorderBrush="{StaticResource NormalBorderBrush}"
|
||
|
BorderThickness="1"
|
||
|
CornerRadius="0">
|
||
|
<Path
|
||
|
HorizontalAlignment="Center"
|
||
|
VerticalAlignment="Center"
|
||
|
Data="{Binding Path=Content, RelativeSource={RelativeSource TemplatedParent}}"
|
||
|
Fill="{StaticResource GlyphBrush}" />
|
||
|
</Border>
|
||
|
<ControlTemplate.Triggers>
|
||
|
<Trigger Property="IsPressed" Value="true">
|
||
|
<Setter TargetName="Border" Property="Background" Value="{StaticResource PressedBrush}" />
|
||
|
</Trigger>
|
||
|
<Trigger Property="IsEnabled" Value="false">
|
||
|
<Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}" />
|
||
|
</Trigger>
|
||
|
</ControlTemplate.Triggers>
|
||
|
</ControlTemplate>
|
||
|
</Setter.Value>
|
||
|
</Setter>
|
||
|
</Style>
|
||
|
|
||
|
<!--
|
||
|
SrollViewer ScrollBar Repeat Buttons (The part in the middle,
|
||
|
not the thumb the long area between the buttons )
|
||
|
-->
|
||
|
<Style x:Key="ScrollBarPageButton" TargetType="{x:Type RepeatButton}">
|
||
|
<Setter Property="SnapsToDevicePixels" Value="True" />
|
||
|
<Setter Property="OverridesDefaultStyle" Value="true" />
|
||
|
<Setter Property="IsTabStop" Value="false" />
|
||
|
<Setter Property="Focusable" Value="false" />
|
||
|
<Setter Property="Template">
|
||
|
<Setter.Value>
|
||
|
<ControlTemplate TargetType="{x:Type RepeatButton}">
|
||
|
<Border Background="Transparent" />
|
||
|
</ControlTemplate>
|
||
|
</Setter.Value>
|
||
|
</Setter>
|
||
|
</Style>
|
||
|
|
||
|
<!--
|
||
|
ScrollViewer ScrollBar Thumb, that part that can be dragged
|
||
|
up/down or left/right Buttons
|
||
|
-->
|
||
|
<Style x:Key="ScrollBarThumb" TargetType="{x:Type Thumb}">
|
||
|
<Setter Property="SnapsToDevicePixels" Value="True" />
|
||
|
<Setter Property="OverridesDefaultStyle" Value="true" />
|
||
|
<Setter Property="IsTabStop" Value="false" />
|
||
|
<Setter Property="Focusable" Value="false" />
|
||
|
<Setter Property="Template">
|
||
|
<Setter.Value>
|
||
|
<ControlTemplate TargetType="{x:Type Thumb}">
|
||
|
<Border
|
||
|
Background="{TemplateBinding Background}"
|
||
|
BorderBrush="{TemplateBinding BorderBrush}"
|
||
|
BorderThickness="1"
|
||
|
CornerRadius="0" />
|
||
|
</ControlTemplate>
|
||
|
</Setter.Value>
|
||
|
</Setter>
|
||
|
</Style>
|
||
|
|
||
|
<ControlTemplate x:Key="VerticalScrollBar" TargetType="{x:Type ScrollBar}">
|
||
|
<Grid>
|
||
|
<Grid.RowDefinitions>
|
||
|
<RowDefinition MaxHeight="18" />
|
||
|
<RowDefinition Height="0.00001*" />
|
||
|
<RowDefinition MaxHeight="18" />
|
||
|
</Grid.RowDefinitions>
|
||
|
<Border
|
||
|
Grid.RowSpan="3"
|
||
|
Background="LightGray"
|
||
|
CornerRadius="0" />
|
||
|
<RepeatButton
|
||
|
Grid.Row="0"
|
||
|
Height="18"
|
||
|
Command="ScrollBar.LineUpCommand"
|
||
|
Content="M 0 4 L 8 4 L 4 0 Z"
|
||
|
Style="{StaticResource ScrollBarLineButton}" />
|
||
|
<Track
|
||
|
Name="PART_Track"
|
||
|
Grid.Row="1"
|
||
|
IsDirectionReversed="true">
|
||
|
<Track.DecreaseRepeatButton>
|
||
|
<RepeatButton Command="ScrollBar.PageUpCommand" Style="{StaticResource ScrollBarPageButton}" />
|
||
|
</Track.DecreaseRepeatButton>
|
||
|
<Track.Thumb>
|
||
|
<Thumb
|
||
|
Margin="1,0,1,0"
|
||
|
Background="{StaticResource HorizontalNormalBrush}"
|
||
|
BorderBrush="{StaticResource HorizontalNormalBorderBrush}"
|
||
|
Style="{StaticResource ScrollBarThumb}" />
|
||
|
</Track.Thumb>
|
||
|
<Track.IncreaseRepeatButton>
|
||
|
<RepeatButton Command="ScrollBar.PageDownCommand" Style="{StaticResource ScrollBarPageButton}" />
|
||
|
</Track.IncreaseRepeatButton>
|
||
|
</Track>
|
||
|
<RepeatButton
|
||
|
Grid.Row="3"
|
||
|
Height="18"
|
||
|
Command="ScrollBar.LineDownCommand"
|
||
|
Content="M 0 0 L 4 4 L 8 0 Z"
|
||
|
Style="{StaticResource ScrollBarLineButton}" />
|
||
|
</Grid>
|
||
|
</ControlTemplate>
|
||
|
|
||
|
<!-- HorizontalScrollBar Template using the previously created Templates -->
|
||
|
<ControlTemplate x:Key="HorizontalScrollBar" TargetType="{x:Type ScrollBar}">
|
||
|
<Grid>
|
||
|
<Grid.ColumnDefinitions>
|
||
|
<ColumnDefinition MaxWidth="18" />
|
||
|
<ColumnDefinition Width="0.00001*" />
|
||
|
<ColumnDefinition MaxWidth="18" />
|
||
|
</Grid.ColumnDefinitions>
|
||
|
<Border
|
||
|
Grid.ColumnSpan="3"
|
||
|
Background="LightGray"
|
||
|
CornerRadius="0" />
|
||
|
<RepeatButton
|
||
|
Grid.Column="0"
|
||
|
Width="18"
|
||
|
Command="ScrollBar.LineLeftCommand"
|
||
|
Content="M 4 0 L 4 8 L 0 4 Z"
|
||
|
Style="{StaticResource ScrollBarLineButton}" />
|
||
|
<Track
|
||
|
Name="PART_Track"
|
||
|
Grid.Column="1"
|
||
|
IsDirectionReversed="False">
|
||
|
<Track.DecreaseRepeatButton>
|
||
|
<RepeatButton Command="ScrollBar.PageLeftCommand" Style="{StaticResource ScrollBarPageButton}" />
|
||
|
</Track.DecreaseRepeatButton>
|
||
|
<Track.Thumb>
|
||
|
<Thumb
|
||
|
Margin="0,1,0,1"
|
||
|
Background="{StaticResource NormalBrush}"
|
||
|
BorderBrush="{StaticResource NormalBorderBrush}"
|
||
|
Style="{StaticResource ScrollBarThumb}" />
|
||
|
</Track.Thumb>
|
||
|
<Track.IncreaseRepeatButton>
|
||
|
<RepeatButton Command="ScrollBar.PageRightCommand" Style="{StaticResource ScrollBarPageButton}" />
|
||
|
</Track.IncreaseRepeatButton>
|
||
|
</Track>
|
||
|
<RepeatButton
|
||
|
Grid.Column="3"
|
||
|
Width="18"
|
||
|
Command="ScrollBar.LineRightCommand"
|
||
|
Content="M 0 0 L 4 4 L 0 8 Z"
|
||
|
Style="{StaticResource ScrollBarLineButton}" />
|
||
|
</Grid>
|
||
|
</ControlTemplate>
|
||
|
|
||
|
<!-- Style for overall ScrollBar -->
|
||
|
<Style x:Key="{x:Type ScrollBar}" TargetType="{x:Type ScrollBar}">
|
||
|
<Setter Property="SnapsToDevicePixels" Value="True" />
|
||
|
<Setter Property="OverridesDefaultStyle" Value="true" />
|
||
|
<Style.Triggers>
|
||
|
<Trigger Property="Orientation" Value="Horizontal">
|
||
|
<Setter Property="Width" Value="Auto" />
|
||
|
<Setter Property="Height" Value="22" />
|
||
|
<Setter Property="Template" Value="{StaticResource HorizontalScrollBar}" />
|
||
|
</Trigger>
|
||
|
<Trigger Property="Orientation" Value="Vertical">
|
||
|
<Setter Property="Width" Value="22" />
|
||
|
<Setter Property="Height" Value="Auto" />
|
||
|
<Setter Property="Template" Value="{StaticResource VerticalScrollBar}" />
|
||
|
</Trigger>
|
||
|
</Style.Triggers>
|
||
|
</Style>
|
||
|
|
||
|
<!-- Style for overall ScrollViewer -->
|
||
|
<Style x:Key="FavsScrollViewer" TargetType="{x:Type ScrollViewer}">
|
||
|
<Setter Property="OverridesDefaultStyle" Value="True" />
|
||
|
<Setter Property="Template">
|
||
|
<Setter.Value>
|
||
|
<ControlTemplate TargetType="{x:Type ScrollViewer}">
|
||
|
<Grid>
|
||
|
<Grid.ColumnDefinitions>
|
||
|
<ColumnDefinition Width="Auto" />
|
||
|
<ColumnDefinition />
|
||
|
</Grid.ColumnDefinitions>
|
||
|
<Grid.RowDefinitions>
|
||
|
<RowDefinition />
|
||
|
<RowDefinition Height="Auto" />
|
||
|
</Grid.RowDefinitions>
|
||
|
|
||
|
<ScrollContentPresenter Grid.Column="1" />
|
||
|
|
||
|
<ScrollBar
|
||
|
Name="PART_VerticalScrollBar"
|
||
|
Maximum="{TemplateBinding ScrollableHeight}"
|
||
|
ViewportSize="{TemplateBinding ViewportHeight}"
|
||
|
Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
|
||
|
Value="{TemplateBinding VerticalOffset}" />
|
||
|
|
||
|
<ScrollBar
|
||
|
Name="PART_HorizontalScrollBar"
|
||
|
Grid.Row="1"
|
||
|
Grid.Column="1"
|
||
|
Maximum="{TemplateBinding ScrollableWidth}"
|
||
|
Orientation="Horizontal"
|
||
|
ViewportSize="{TemplateBinding ViewportWidth}"
|
||
|
Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"
|
||
|
Value="{TemplateBinding HorizontalOffset}" />
|
||
|
</Grid>
|
||
|
</ControlTemplate>
|
||
|
</Setter.Value>
|
||
|
</Setter>
|
||
|
</Style>
|
||
|
|
||
|
</ResourceDictionary>
|