VRCMelonAssistant/VRCMelonAssistant/Styles/ScrollBar.xaml

216 lines
15 KiB
XML

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="{x:Type ScrollBar}" TargetType="{x:Type ScrollBar}">
<Setter Property="Stylus.IsPressAndHoldEnabled" Value="False" />
<Setter Property="Stylus.IsFlicksEnabled" Value="False" />
<Setter Property="Background" Value="{DynamicResource ScrollBarBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ScrollBarBorder}" />
<Setter Property="Foreground" Value="{DynamicResource ScrollBarTextColor}" />
<Setter Property="BorderThickness" Value="1,0" />
<Setter Property="Width" Value="{DynamicResource SystemParameters.VerticalScrollBarWidthKey}" />
<Setter Property="MinWidth" Value="16" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollBar}">
<Grid Name="Bg" SnapsToDevicePixels="True">
<Grid.RowDefinitions>
<RowDefinition Height="{DynamicResource ResourceKey=ScrollBarButtonHeight}" />
<RowDefinition Height="*" />
<RowDefinition Height="{DynamicResource ResourceKey=ScrollBarButtonHeight}" />
</Grid.RowDefinitions>
<Border
Grid.Row="1"
Background="{TemplateBinding Background}"
BorderThickness="{TemplateBinding BorderThickness}" />
<RepeatButton
Name="PART_LineUpButton"
Command="{x:Static ScrollBar.LineUpCommand}"
IsEnabled="{TemplateBinding IsMouseOver}"
Style="{DynamicResource ResourceKey=VRCMelonAssistantRepeatButton}">
<Path
Name="ArrowTop"
Margin="3,4,3,3"
Data="M0,4 C0,4 0,6 0,6 C0,6 3.5,2.5 3.5,2.5 C3.5,2.5 7,6 7,6 C7,6 7,4 7,4 C7,4 3.5,0.5 3.5,0.5 C3.5,0.5 0,4 0,4"
Fill="{DynamicResource ScrollBarArrowColor}"
Stretch="Uniform" />
</RepeatButton>
<Track
Name="PART_Track"
Grid.Row="1"
IsDirectionReversed="True"
IsEnabled="{TemplateBinding IsMouseOver}">
<Track.DecreaseRepeatButton>
<RepeatButton
Background="{DynamicResource ScrollBarBackground}"
Command="{x:Static ScrollBar.PageUpCommand}"
Style="{DynamicResource ResourceKey=VRCMelonAssistantSmallRepeatButton}" />
</Track.DecreaseRepeatButton>
<Track.IncreaseRepeatButton>
<RepeatButton
Background="{DynamicResource ScrollBarBackground}"
Command="{x:Static ScrollBar.PageDownCommand}"
Style="{DynamicResource ResourceKey=VRCMelonAssistantSmallRepeatButton}" />
</Track.IncreaseRepeatButton>
<Track.Thumb>
<Thumb Background="{DynamicResource ScrollBarHandle}" Style="{DynamicResource ResourceKey=VRCMelonAssistantThumb}" />
</Track.Thumb>
</Track>
<RepeatButton
Name="PART_LineDownButton"
Grid.Row="2"
Command="{x:Static ScrollBar.LineDownCommand}"
IsEnabled="{TemplateBinding IsMouseOver}"
Style="{DynamicResource ResourceKey=VRCMelonAssistantRepeatButton}">
<Path
Name="ArrowBottom"
Margin="3,4,3,3"
Data="M0,2.5 C0,2.5 0,0.5 0,0.5 C0,0.5 3.5,4 3.5,4 C3.5,4 7,0.5 7,0.5 C7,0.5 7,2.5 7,2.5 C7,2.5 3.5,6 3.5,6 C3.5,6 0,2.5 0,2.5"
Fill="{DynamicResource ScrollBarArrowColor}"
Stretch="Uniform" />
</RepeatButton>
</Grid>
<ControlTemplate.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=PART_LineDownButton, Path=IsMouseOver}" Value="true" />
<Condition Binding="{Binding ElementName=PART_LineDownButton, Path=IsPressed}" Value="true" />
</MultiDataTrigger.Conditions>
<Setter TargetName="ArrowBottom" Property="Fill" Value="{DynamicResource ScrollBarArrowClicked}" />
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=PART_LineUpButton, Path=IsMouseOver}" Value="true" />
<Condition Binding="{Binding ElementName=PART_LineUpButton, Path=IsPressed}" Value="true" />
</MultiDataTrigger.Conditions>
<Setter TargetName="ArrowTop" Property="Fill" Value="{DynamicResource ScrollBarArrowClicked}" />
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=PART_LineDownButton, Path=IsMouseOver}" Value="true" />
<Condition Binding="{Binding ElementName=PART_LineDownButton, Path=IsPressed}" Value="false" />
</MultiDataTrigger.Conditions>
<Setter TargetName="ArrowBottom" Property="Fill" Value="{DynamicResource ScrollBarArrowHovered}" />
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=PART_LineUpButton, Path=IsMouseOver}" Value="true" />
<Condition Binding="{Binding ElementName=PART_LineUpButton, Path=IsPressed}" Value="false" />
</MultiDataTrigger.Conditions>
<Setter TargetName="ArrowTop" Property="Fill" Value="{DynamicResource ScrollBarArrowHovered}" />
</MultiDataTrigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="ArrowTop" Property="Fill" Value="{DynamicResource ScrollBarDisabled}" />
<Setter TargetName="ArrowBottom" Property="Fill" Value="{DynamicResource ScrollBarDisabled}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="ScrollBar.Orientation" Value="Horizontal">
<Setter Property="Width" Value="Auto" />
<Setter Property="MinWidth" Value="0" />
<Setter Property="Height" Value="{DynamicResource SystemParameters.HorizontalScrollBarHeightKey}" />
<Setter Property="MinHeight" Value="{DynamicResource SystemParameters.HorizontalScrollBarHeightKey}" />
<Setter Property="BorderThickness" Value="0,1" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollBar}">
<Grid Name="Bg" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{DynamicResource ResourceKey=ScrollBarButtonHeight}" />
<ColumnDefinition Width="0.00001*" />
<ColumnDefinition Width="{DynamicResource ResourceKey=ScrollBarButtonHeight}" />
</Grid.ColumnDefinitions>
<Border
Grid.Column="1"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" />
<RepeatButton
Name="PART_LineLeftButton"
Command="{x:Static ScrollBar.LineLeftCommand}"
IsEnabled="{TemplateBinding IsMouseOver}"
Style="{DynamicResource ResourceKey=VRCMelonAssistantRepeatButton}">
<Path
Name="ArrowLeft"
Margin="3"
Data="M3.18,7 C3.18,7 5,7 5,7 C5,7 1.81,3.5 1.81,3.5 C1.81,3.5 5,0 5,0 C5,0 3.18,0 3.18,0 C3.18,0 0,3.5 0,3.5 C0,3.5 3.18,7 3.18,7"
Fill="{DynamicResource ScrollBarArrowColor}"
Stretch="Uniform" />
</RepeatButton>
<Track
Name="PART_Track"
Grid.Column="1"
IsEnabled="{TemplateBinding IsMouseOver}">
<Track.DecreaseRepeatButton>
<RepeatButton
Background="{DynamicResource ScrollBarBackground}"
Command="{x:Static ScrollBar.PageLeftCommand}"
Style="{DynamicResource ResourceKey=VRCMelonAssistantSmallRepeatButton}" />
</Track.DecreaseRepeatButton>
<Track.IncreaseRepeatButton>
<RepeatButton
Background="{DynamicResource ScrollBarBackground}"
Command="{x:Static ScrollBar.PageRightCommand}"
Style="{DynamicResource ResourceKey=VRCMelonAssistantSmallRepeatButton}" />
</Track.IncreaseRepeatButton>
<Track.Thumb>
<Thumb Background="{DynamicResource ScrollBarHandle}" Style="{DynamicResource ResourceKey=VRCMelonAssistantThumb}" />
</Track.Thumb>
</Track>
<RepeatButton
Name="PART_LineRightButton"
Grid.Column="2"
Command="{x:Static ScrollBar.LineRightCommand}"
IsEnabled="{TemplateBinding IsMouseOver}"
Style="{DynamicResource ResourceKey=VRCMelonAssistantRepeatButton}">
<Path
Name="ArrowRight"
Margin="3"
Data="M1.81,7 C1.81,7 0,7 0,7 C0,7 3.18,3.5 3.18,3.5 C3.18,3.5 0,0 0,0 C0,0 1.81,0 1.81,0 C1.81,0 5,3.5 5,3.5 C5,3.5 1.81,7 1.81,7"
Fill="{DynamicResource ScrollBarArrowColor}"
Stretch="Uniform" />
</RepeatButton>
</Grid>
<ControlTemplate.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=PART_LineRightButton, Path=IsMouseOver}" Value="true" />
<Condition Binding="{Binding ElementName=PART_LineRightButton, Path=IsPressed}" Value="true" />
</MultiDataTrigger.Conditions>
<Setter TargetName="ArrowRight" Property="Fill" Value="{DynamicResource ScrollBarArrowClicked}" />
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=PART_LineLeftButton, Path=IsMouseOver}" Value="true" />
<Condition Binding="{Binding ElementName=PART_LineLeftButton, Path=IsPressed}" Value="true" />
</MultiDataTrigger.Conditions>
<Setter TargetName="ArrowLeft" Property="Fill" Value="{DynamicResource ScrollBarArrowClicked}" />
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=PART_LineRightButton, Path=IsMouseOver}" Value="true" />
<Condition Binding="{Binding ElementName=PART_LineRightButton, Path=IsPressed}" Value="false" />
</MultiDataTrigger.Conditions>
<Setter TargetName="ArrowRight" Property="Fill" Value="{DynamicResource ScrollBarArrowHovered}" />
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=PART_LineLeftButton, Path=IsMouseOver}" Value="true" />
<Condition Binding="{Binding ElementName=PART_LineLeftButton, Path=IsPressed}" Value="false" />
</MultiDataTrigger.Conditions>
<Setter TargetName="ArrowLeft" Property="Fill" Value="{DynamicResource ScrollBarArrowHovered}" />
</MultiDataTrigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="ArrowLeft" Property="Fill" Value="{DynamicResource ScrollBarDisabled}" />
<Setter TargetName="ArrowRight" Property="Fill" Value="{DynamicResource ScrollBarDisabled}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</ResourceDictionary>