csharpc-sharpdotnetxamlavaloniauicross-platformcross-platform-xamlavaloniaguimulti-platformuser-interfacedotnetcore
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
6.2 KiB
106 lines
6.2 KiB
<Styles xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:converters="clr-namespace:Avalonia.Controls.Converters;assembly=Avalonia.Controls">
|
|
<Style Selector="ScrollViewer">
|
|
<Setter Property="Background"
|
|
Value="Transparent" />
|
|
<Setter Property="Template">
|
|
<ControlTemplate>
|
|
<Grid ColumnDefinitions="*,Auto" RowDefinitions="*,Auto">
|
|
<ScrollContentPresenter Name="PART_ContentPresenter"
|
|
Background="{TemplateBinding Background}"
|
|
CanHorizontallyScroll="{TemplateBinding CanHorizontallyScroll}"
|
|
CanVerticallyScroll="{TemplateBinding CanVerticallyScroll}"
|
|
Content="{TemplateBinding Content}"
|
|
Extent="{TemplateBinding Extent, Mode=TwoWay}"
|
|
Margin="{TemplateBinding Padding}"
|
|
Offset="{TemplateBinding Offset, Mode=TwoWay}"
|
|
Viewport="{TemplateBinding Viewport, Mode=TwoWay}"
|
|
IsScrollChainingEnabled="{TemplateBinding IsScrollChainingEnabled}">
|
|
<ScrollContentPresenter.GestureRecognizers>
|
|
<ScrollGestureRecognizer
|
|
CanHorizontallyScroll="{TemplateBinding CanHorizontallyScroll}"
|
|
CanVerticallyScroll="{TemplateBinding CanVerticallyScroll}"
|
|
/>
|
|
</ScrollContentPresenter.GestureRecognizers>
|
|
</ScrollContentPresenter>
|
|
<ScrollBar Name="horizontalScrollBar"
|
|
Orientation="Horizontal"
|
|
LargeChange="{Binding LargeChange.Width, RelativeSource={RelativeSource TemplatedParent}}"
|
|
SmallChange="{Binding SmallChange.Width, RelativeSource={RelativeSource TemplatedParent}}"
|
|
Maximum="{TemplateBinding HorizontalScrollBarMaximum}"
|
|
Value="{TemplateBinding HorizontalScrollBarValue, Mode=TwoWay}"
|
|
ViewportSize="{TemplateBinding HorizontalScrollBarViewportSize}"
|
|
Visibility="{TemplateBinding HorizontalScrollBarVisibility}"
|
|
Grid.Row="1"
|
|
Focusable="False"/>
|
|
<ScrollBar Name="verticalScrollBar"
|
|
Orientation="Vertical"
|
|
LargeChange="{Binding LargeChange.Height, RelativeSource={RelativeSource TemplatedParent}}"
|
|
SmallChange="{Binding SmallChange.Height, RelativeSource={RelativeSource TemplatedParent}}"
|
|
Maximum="{TemplateBinding VerticalScrollBarMaximum}"
|
|
Value="{TemplateBinding VerticalScrollBarValue, Mode=TwoWay}"
|
|
ViewportSize="{TemplateBinding VerticalScrollBarViewportSize}"
|
|
Visibility="{TemplateBinding VerticalScrollBarVisibility}"
|
|
Grid.Column="1"
|
|
Focusable="False"/>
|
|
<Panel Grid.Row="1" Grid.Column="1" Background="{DynamicResource ThemeControlMidBrush}"/>
|
|
</Grid>
|
|
</ControlTemplate>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<Style Selector="ScrollViewer.menuscroller">
|
|
<Setter Property="Template">
|
|
<ControlTemplate>
|
|
<DockPanel>
|
|
<RepeatButton DockPanel.Dock="Top"
|
|
BorderThickness="0"
|
|
Background="Transparent"
|
|
Command="{Binding LineUp, RelativeSource={RelativeSource TemplatedParent}}">
|
|
<RepeatButton.IsVisible>
|
|
<MultiBinding Converter="{x:Static converters:MenuScrollingVisibilityConverter.Instance}"
|
|
ConverterParameter="0">
|
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="VerticalScrollBarVisibility"/>
|
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Offset.Y"/>
|
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Extent.Height"/>
|
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Viewport.Height"/>
|
|
</MultiBinding>
|
|
</RepeatButton.IsVisible>
|
|
<Path Data="M 0 4 L 8 4 L 4 0 Z"/>
|
|
</RepeatButton>
|
|
<RepeatButton DockPanel.Dock="Bottom"
|
|
BorderThickness="0"
|
|
Background="Transparent"
|
|
Command="{Binding LineDown, RelativeSource={RelativeSource TemplatedParent}}">
|
|
<RepeatButton.IsVisible>
|
|
<MultiBinding Converter="{x:Static converters:MenuScrollingVisibilityConverter.Instance}"
|
|
ConverterParameter="100">
|
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="VerticalScrollBarVisibility"/>
|
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Offset.Y"/>
|
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Extent.Height"/>
|
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Viewport.Height"/>
|
|
</MultiBinding>
|
|
</RepeatButton.IsVisible>
|
|
<Path Data="M 0 0 L 4 4 L 8 0 Z"/>
|
|
</RepeatButton>
|
|
<ScrollContentPresenter Name="PART_ContentPresenter"
|
|
CanHorizontallyScroll="{TemplateBinding CanHorizontallyScroll}"
|
|
CanVerticallyScroll="{TemplateBinding CanVerticallyScroll}"
|
|
Content="{TemplateBinding Content}"
|
|
Extent="{TemplateBinding Extent, Mode=TwoWay}"
|
|
Margin="{TemplateBinding Padding}"
|
|
Offset="{TemplateBinding Offset, Mode=TwoWay}"
|
|
Viewport="{TemplateBinding Viewport, Mode=TwoWay}"/>
|
|
</DockPanel>
|
|
</ControlTemplate>
|
|
</Setter>
|
|
</Style>
|
|
<Style Selector="ScrollViewer.menuscroller /template/ RepeatButton > Path">
|
|
<Setter Property="Fill" Value="{DynamicResource ThemeForegroundLowBrush}" />
|
|
</Style>
|
|
|
|
<Style Selector="ScrollViewer.menuscroller /template/ RepeatButton:pointerover > Path">
|
|
<Setter Property="Fill" Value="{DynamicResource ThemeAccentBrush}" />
|
|
</Style>
|
|
</Styles>
|
|
|