Files
Ursa.Avalonia/src/Ursa.Themes.Semi/Controls/ScrollToButton.axaml
2024-03-06 17:06:42 +08:00

93 lines
4.8 KiB
XML

<ResourceDictionary
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:u="https://irihi.tech/ursa">
<!-- Add Resources Here -->
<ControlTheme x:Key="{x:Type u:ScrollToButton}" TargetType="u:ScrollToButton">
<Setter Property="HorizontalAlignment" Value="Right" />
<Setter Property="VerticalAlignment" Value="Bottom" />
<Setter Property="Cursor" Value="Hand"></Setter>
<Setter Property="Margin" Value="0, 0, 16, 16" />
<Setter Property="Template">
<ControlTemplate TargetType="u:ScrollToButton">
<Border
Name="PART_Background"
Background="{DynamicResource ButtonDefaultBackground}"
CornerRadius="{DynamicResource ButtonCornerRadius}">
<PathIcon
Name="PART_Icon"
Margin="8"
Width="12"
Height="12"
Data="{DynamicResource ScrollToButtonIconGlyph}"
Foreground="{DynamicResource ButtonDefaultPrimaryForeground}" />
</Border>
</ControlTemplate>
</Setter>
<Style Selector="^:pressed">
<Setter Property="RenderTransform" Value="scale(0.98)" />
</Style>
<Style Selector="^:pointerover /template/ Border#PART_Background">
<Setter Property="BorderBrush" Value="{DynamicResource ButtonDefaultPointeroverBorderBrush}" />
<Setter Property="Background" Value="{DynamicResource ButtonDefaultPointeroverBackground}" />
</Style>
<Style Selector="^:pressed /template/ Border#PART_Background">
<Setter Property="BorderBrush" Value="{DynamicResource ButtonDefaultPressedBorderBrush}" />
<Setter Property="Background" Value="{DynamicResource ButtonDefaultPressedBackground}" />
</Style>
<Style Selector="^[Direction=Right] /template/ PathIcon#PART_Icon">
<Setter Property="RenderTransform" Value="rotate(90deg)"></Setter>
</Style>
<Style Selector="^[Direction=Bottom] /template/ PathIcon#PART_Icon">
<Setter Property="RenderTransform" Value="rotate(180deg)"></Setter>
</Style>
<Style Selector="^[Direction=Left] /template/ PathIcon#PART_Icon">
<Setter Property="RenderTransform" Value="rotate(270deg)"></Setter>
</Style>
</ControlTheme>
<ControlTheme x:Key="PrimaryScrollToButton" TargetType="u:ScrollToButton">
<Setter Property="HorizontalAlignment" Value="Right" />
<Setter Property="VerticalAlignment" Value="Bottom" />
<Setter Property="Cursor" Value="Hand"></Setter>
<Setter Property="Margin" Value="0, 0, 16, 16" />
<Setter Property="Template">
<ControlTemplate TargetType="u:ScrollToButton">
<Border
Name="PART_Background"
Background="{DynamicResource ButtonSolidPrimaryBackground}"
CornerRadius="{DynamicResource ButtonCornerRadius}">
<PathIcon
Name="PART_Icon"
Margin="8"
Width="12"
Height="12"
Data="{DynamicResource ScrollToButtonIconGlyph}"
Foreground="{DynamicResource ButtonSolidForeground}" />
</Border>
</ControlTemplate>
</Setter>
<Style Selector="^:pressed">
<Setter Property="RenderTransform" Value="scale(0.98)" />
</Style>
<Style Selector="^:pointerover /template/ Border#PART_Background">
<Setter Property="Background" Value="{DynamicResource ButtonSolidPrimaryPointeroverBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonSolidPrimaryPointeroverBorderBrush}" />
</Style>
<Style Selector="^:pressed /template/ Border#PART_Background">
<Setter Property="Background" Value="{DynamicResource ButtonSolidPrimaryPressedBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonSolidPrimaryPressedBorderBrush}" />
</Style>
<Style Selector="^[Direction=Right] /template/ PathIcon#PART_Icon">
<Setter Property="RenderTransform" Value="rotate(90deg)"></Setter>
</Style>
<Style Selector="^[Direction=Bottom] /template/ PathIcon#PART_Icon">
<Setter Property="RenderTransform" Value="rotate(180deg)"></Setter>
</Style>
<Style Selector="^[Direction=Left] /template/ PathIcon#PART_Icon">
<Setter Property="RenderTransform" Value="rotate(270deg)"></Setter>
</Style>
</ControlTheme>
</ResourceDictionary>