Browse Source

overhaul scrollbar templates, to support pointer over, pointer pressed, and nice arrows. basically matches visual studio now.

pull/3134/head
Dan Walmsley 7 years ago
parent
commit
1bc56dc777
  1. 6
      src/Avalonia.Themes.Default/RepeatButton.xaml
  2. 264
      src/Avalonia.Themes.Default/ScrollBar.xaml

6
src/Avalonia.Themes.Default/RepeatButton.xaml

@ -33,12 +33,8 @@
<Setter Property="BorderBrush" <Setter Property="BorderBrush"
Value="{DynamicResource ThemeBorderMidBrush}" /> Value="{DynamicResource ThemeBorderMidBrush}" />
</Style> </Style>
<Style Selector="RepeatButton:pressed /template/ ContentPresenter">
<Setter Property="Background"
Value="{DynamicResource ThemeControlHighBrush}" />
</Style>
<Style Selector="RepeatButton:disabled"> <Style Selector="RepeatButton:disabled">
<Setter Property="Opacity" <Setter Property="Opacity"
Value="{DynamicResource ThemeDisabledOpacity}" /> Value="{DynamicResource ThemeDisabledOpacity}" />
</Style> </Style>
</Styles> </Styles>

264
src/Avalonia.Themes.Default/ScrollBar.xaml

@ -1,128 +1,140 @@
<Styles xmlns="https://github.com/avaloniaui"> <Styles xmlns="https://github.com/avaloniaui">
<Style Selector="ScrollBar"> <Style Selector="ScrollBar">
<Setter Property="Template"> <Setter Property="Cursor" Value="Arrow" />
<ControlTemplate> <Setter Property="Template">
<Border Background="{DynamicResource ThemeControlMidBrush}"> <ControlTemplate>
<Grid RowDefinitions="Auto,*,Auto"> <Border Background="{DynamicResource ThemeControlMidBrush}">
<RepeatButton Name="PART_LineUpButton" <Grid RowDefinitions="Auto,*,Auto">
Classes="repeat" <RepeatButton Name="PART_LineUpButton"
Grid.Row="0" Classes="repeat"
Grid.Column="0" Grid.Row="0"
Focusable="False"> Focusable="False"
<Path Data="M 0,4 C0,4 0,6 0,6 0,6 3.5,2.5 3.5,2.5 3.5,2.5 7,6 7,6 7,6 7,4 7,4 7,4 3.5,0.5 3.5,0.5 3.5,0.5 0,4 0,4 z" MinHeight="{DynamicResource ScrollBarThickness}">
Stretch="Uniform" <Path Data="M 1,5 H 11 L 6,0 Z " />
Fill="{DynamicResource ThemeForegroundLowBrush}" /> </RepeatButton>
</RepeatButton> <Track Grid.Row="1"
<Track Grid.Row="1" Grid.Column="1"
Grid.Column="1" Minimum="{TemplateBinding Minimum}"
Minimum="{TemplateBinding Minimum}" Maximum="{TemplateBinding Maximum}"
Maximum="{TemplateBinding Maximum}" Value="{TemplateBinding Value, Mode=TwoWay}"
Value="{TemplateBinding Value, Mode=TwoWay}" ViewportSize="{TemplateBinding ViewportSize}"
ViewportSize="{TemplateBinding ViewportSize}" Orientation="{TemplateBinding Orientation}"
Orientation="{TemplateBinding Orientation}" IsDirectionReversed="True">
IsDirectionReversed="True"> <Track.DecreaseButton>
<Track.DecreaseButton> <RepeatButton Name="PART_PageUpButton"
<RepeatButton Name="PART_PageUpButton" Classes="repeattrack"
Classes="repeattrack" Focusable="False"/>
Focusable="False"/> </Track.DecreaseButton>
</Track.DecreaseButton> <Track.IncreaseButton>
<Track.IncreaseButton> <RepeatButton Name="PART_PageDownButton"
<RepeatButton Name="PART_PageDownButton" Classes="repeattrack"
Classes="repeattrack" Focusable="False"/>
Focusable="False"/> </Track.IncreaseButton>
</Track.IncreaseButton> <Thumb Name="thumb"/>
<Thumb Name="thumb"/> </Track>
</Track> <RepeatButton Name="PART_LineDownButton"
<RepeatButton Name="PART_LineDownButton" Classes="repeat"
Classes="repeat" Grid.Row="2"
Grid.Row="2" Grid.Column="2"
Grid.Column="2" Focusable="False"
Focusable="False"> MinHeight="{DynamicResource ScrollBarThickness}">
<Path Data="M 0,2.5 C0,2.5 0,0.5 0,0.5 0,0.5 3.5,4 3.5,4 3.5,4 7,0.5 7,0.5 7,0.5 7,2.5 7,2.5 7,2.5 3.5,6 3.5,6 3.5,6 0,2.5 0,2.5 z" <Path Data="M 1,0 6,5 11,0 Z" />
Stretch="Uniform" </RepeatButton>
Fill="{DynamicResource ThemeForegroundLowBrush}" /> </Grid>
</RepeatButton> </Border>
</Grid> </ControlTemplate>
</Border> </Setter>
</ControlTemplate> </Style>
</Setter> <Style Selector="ScrollBar:horizontal">
</Style> <Setter Property="Height" Value="{DynamicResource ScrollBarThickness}" />
<Style Selector="ScrollBar:horizontal"> <Setter Property="Template">
<Setter Property="Height" Value="{DynamicResource ScrollBarThickness}" /> <ControlTemplate>
<Setter Property="Template"> <Border Background="{DynamicResource ThemeControlMidBrush}">
<ControlTemplate> <Grid ColumnDefinitions="Auto,*,Auto">
<Border Background="{DynamicResource ThemeControlMidBrush}"> <RepeatButton Name="PART_LineUpButton" VerticalAlignment="Center"
<Grid ColumnDefinitions="Auto,*,Auto"> Classes="repeat"
<RepeatButton Name="PART_LineUpButton" Grid.Row="0"
Classes="repeat" Grid.Column="0"
Grid.Row="0" Focusable="False"
Grid.Column="0" MinWidth="{DynamicResource ScrollBarThickness}">
Focusable="False"> <Path Data="M 5 0 L 5 10 L 0 5 Z" />
<Path Data="M 3.18,7 C3.18,7 5,7 5,7 5,7 1.81,3.5 1.81,3.5 1.81,3.5 5,0 5,0 5,0 3.18,0 3.18,0 3.18,0 0,3.5 0,3.5 0,3.5 3.18,7 3.18,7 z" </RepeatButton>
Stretch="Uniform" <Track Grid.Row="1"
Fill="{DynamicResource ThemeForegroundLowBrush}" /> Grid.Column="1"
</RepeatButton> Minimum="{TemplateBinding Minimum}"
<Track Grid.Row="1" Maximum="{TemplateBinding Maximum}"
Grid.Column="1" Value="{TemplateBinding Value, Mode=TwoWay}"
Minimum="{TemplateBinding Minimum}" ViewportSize="{TemplateBinding ViewportSize}"
Maximum="{TemplateBinding Maximum}" Orientation="{TemplateBinding Orientation}">
Value="{TemplateBinding Value, Mode=TwoWay}" <Track.DecreaseButton>
ViewportSize="{TemplateBinding ViewportSize}" <RepeatButton Name="PART_PageUpButton"
Orientation="{TemplateBinding Orientation}"> Classes="repeattrack"
<Track.DecreaseButton> Focusable="False"/>
<RepeatButton Name="PART_PageUpButton" </Track.DecreaseButton>
Classes="repeattrack" <Track.IncreaseButton>
Focusable="False"/> <RepeatButton Name="PART_PageDownButton"
</Track.DecreaseButton> Classes="repeattrack"
<Track.IncreaseButton> Focusable="False"/>
<RepeatButton Name="PART_PageDownButton" </Track.IncreaseButton>
Classes="repeattrack" <Thumb Name="thumb"/>
Focusable="False"/> </Track>
</Track.IncreaseButton> <RepeatButton Name="PART_LineDownButton" VerticalAlignment="Center"
<Thumb Name="thumb"/> Classes="repeat"
</Track> Grid.Row="2"
<RepeatButton Name="PART_LineDownButton" Grid.Column="2"
Classes="repeat" Focusable="False"
Grid.Row="2" MinWidth="{DynamicResource ScrollBarThickness}">
Grid.Column="2" <Path Data="M 0 0 L 5 5 L 0 10 Z" />
Focusable="False"> </RepeatButton>
<Path Data="M 1.81,7 C1.81,7 0,7 0,7 0,7 3.18,3.5 3.18,3.5 3.18,3.5 0,0 0,0 0,0 1.81,0 1.81,0 1.81,0 5,3.5 5,3.5 5,3.5 1.81,7 1.81,7 z" </Grid>
Stretch="Uniform" </Border>
Fill="{DynamicResource ThemeForegroundLowBrush}" /> </ControlTemplate>
</RepeatButton> </Setter>
</Grid> </Style>
</Border> <Style Selector="ScrollBar /template/ Thumb#thumb">
</ControlTemplate> <Setter Property="Background" Value="{DynamicResource ThemeControlMidHighBrush}"/>
</Setter> <Setter Property="Template">
</Style> <Setter.Value>
<Style Selector="ScrollBar /template/ Thumb#thumb"> <ControlTemplate>
<Setter Property="Background" Value="{DynamicResource ThemeControlHighBrush}"/> <Border Background="{TemplateBinding Background}"/>
<Setter Property="Template"> </ControlTemplate>
<Setter.Value> </Setter.Value>
<ControlTemplate> </Setter>
<Border Background="{TemplateBinding Background}"/> </Style>
</ControlTemplate> <Style Selector="ScrollBar /template/ Thumb#thumb:pointerover">
</Setter.Value> <Setter Property="Background" Value="{DynamicResource ThemeControlHighBrush}"/>
</Setter> </Style>
</Style> <Style Selector="ScrollBar /template/ Thumb#thumb:pressed">
<Style Selector="ScrollBar:horizontal /template/ Thumb#thumb"> <Setter Property="Background" Value="{DynamicResource ThemeControlVeryHighBrush}"/>
<Setter Property="MinWidth" Value="{DynamicResource ScrollBarThickness}" /> </Style>
</Style> <Style Selector="ScrollBar:horizontal /template/ Thumb#thumb">
<Style Selector="ScrollBar:vertical"> <Setter Property="MinWidth" Value="{DynamicResource ScrollBarThickness}" />
<Setter Property="Width" Value="{DynamicResource ScrollBarThickness}" /> <Setter Property="Height" Value="{DynamicResource ScrollBarThumbThickness}" />
</Style> </Style>
<Style Selector="ScrollBar:vertical /template/ Thumb#thumb"> <Style Selector="ScrollBar:vertical">
<Setter Property="MinHeight" Value="{DynamicResource ScrollBarThickness}" /> <Setter Property="Width" Value="{DynamicResource ScrollBarThickness}" />
</Style> </Style>
<Style Selector="ScrollBar /template/ RepeatButton.repeat"> <Style Selector="ScrollBar:vertical /template/ Thumb#thumb">
<Setter Property="Padding" Value="2" /> <Setter Property="MinHeight" Value="{DynamicResource ScrollBarThickness}" />
<Setter Property="BorderThickness" Value="0" /> <Setter Property="Width" Value="{DynamicResource ScrollBarThumbThickness}" />
</Style> </Style>
<Style Selector="ScrollBar /template/ RepeatButton.repeattrack"> <Style Selector="ScrollBar /template/ RepeatButton.repeat">
<Setter Property="Template"> <Setter Property="Padding" Value="2" />
<ControlTemplate> <Setter Property="BorderThickness" Value="0" />
<Border Background="{TemplateBinding Background}" /> </Style>
</ControlTemplate> <Style Selector="ScrollBar /template/ RepeatButton.repeattrack">
</Setter> <Setter Property="Template">
</Style> <ControlTemplate>
<Border Background="{TemplateBinding Background}" />
</ControlTemplate>
</Setter>
</Style>
<Style Selector="ScrollBar /template/ RepeatButton > Path">
<Setter Property="Fill" Value="{DynamicResource ThemeForegroundLowBrush}" />
</Style>
<Style Selector="ScrollBar /template/ RepeatButton:pointerover > Path">
<Setter Property="Fill" Value="{DynamicResource ThemeAccentBrush}" />
</Style>
</Styles> </Styles>

Loading…
Cancel
Save