365 lines
20 KiB
XML
365 lines
20 KiB
XML
<ResourceDictionary
|
|
xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
x:CompileBindings="True">
|
|
<Design.PreviewWith>
|
|
<StackPanel Margin="20">
|
|
<SplitButton>Hello</SplitButton>
|
|
</StackPanel>
|
|
</Design.PreviewWith>
|
|
|
|
<ControlTheme x:Key="SemiSplitButtonElement" TargetType="Button">
|
|
<Setter Property="Foreground" Value="{DynamicResource ButtonDefaultPrimaryForeground}" />
|
|
<Setter Property="CornerRadius" Value="{DynamicResource ButtonCornerRadius}" />
|
|
<Setter Property="BorderThickness" Value="{DynamicResource ButtonBorderThickness}" />
|
|
<Setter Property="Padding" Value="{DynamicResource ButtonDefaultPadding}" />
|
|
<Setter Property="HorizontalAlignment" Value="Center" />
|
|
<Setter Property="VerticalAlignment" Value="Center" />
|
|
<Setter Property="RenderTransform" Value="none" />
|
|
<Setter Property="FontSize" Value="{DynamicResource ButtonDefaultFontSize}" />
|
|
<Setter Property="FontWeight" Value="{DynamicResource ButtonDefaultFontWeight}" />
|
|
<Setter Property="BackgroundSizing" Value="OuterBorderEdge" />
|
|
<Setter Property="HorizontalContentAlignment" Value="Center" />
|
|
<Setter Property="VerticalContentAlignment" Value="Center" />
|
|
<Setter Property="Cursor" Value="Hand" />
|
|
<Setter Property="Template">
|
|
<ControlTemplate TargetType="Button">
|
|
<ContentPresenter
|
|
Name="PART_ContentPresenter"
|
|
Padding="{TemplateBinding Padding}"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Stretch"
|
|
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
|
|
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
|
|
Background="{TemplateBinding Background}"
|
|
BackgroundSizing="{TemplateBinding BackgroundSizing}"
|
|
BorderBrush="{TemplateBinding BorderBrush}"
|
|
BorderThickness="{TemplateBinding BorderThickness}"
|
|
Content="{TemplateBinding Content}"
|
|
ContentTemplate="{TemplateBinding ContentTemplate}"
|
|
CornerRadius="{TemplateBinding CornerRadius}"
|
|
RecognizesAccessKey="True"
|
|
TextElement.FontSize="{TemplateBinding FontSize}"
|
|
TextElement.FontWeight="{TemplateBinding FontWeight}"
|
|
UseLayoutRounding="False" />
|
|
</ControlTemplate>
|
|
</Setter>
|
|
</ControlTheme>
|
|
|
|
<ControlTheme x:Key="{x:Type SplitButton}" TargetType="SplitButton">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonDefaultBackground}" />
|
|
<Setter Property="Foreground" Value="{DynamicResource ButtonDefaultPrimaryForeground}" />
|
|
<Setter Property="BorderBrush" Value="{DynamicResource ButtonDefaultBorderBrush}" />
|
|
<Setter Property="CornerRadius" Value="{DynamicResource ButtonCornerRadius}" />
|
|
<Setter Property="BorderThickness" Value="{DynamicResource ButtonBorderThickness}" />
|
|
<Setter Property="Padding" Value="{DynamicResource ButtonDefaultPadding}" />
|
|
<Setter Property="RenderTransform" Value="none" />
|
|
<Setter Property="HorizontalAlignment" Value="Center" />
|
|
<Setter Property="VerticalAlignment" Value="Center" />
|
|
<Setter Property="FontSize" Value="{DynamicResource ButtonDefaultFontSize}" />
|
|
<Setter Property="FontWeight" Value="{DynamicResource ButtonDefaultFontWeight}" />
|
|
<Setter Property="HorizontalContentAlignment" Value="Center" />
|
|
<Setter Property="VerticalContentAlignment" Value="Center" />
|
|
<Setter Property="MinHeight" Value="{DynamicResource ButtonDefaultHeight}" />
|
|
<Setter Property="Template">
|
|
<ControlTemplate TargetType="SplitButton">
|
|
<Border
|
|
BackgroundSizing="OuterBorderEdge"
|
|
ClipToBounds="True"
|
|
CornerRadius="{TemplateBinding CornerRadius}">
|
|
<DockPanel>
|
|
<Button
|
|
Name="PART_PrimaryButton"
|
|
Padding="{TemplateBinding Padding}"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Stretch"
|
|
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
|
|
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
|
|
BorderThickness="{TemplateBinding BorderThickness}"
|
|
Command="{TemplateBinding Command}"
|
|
CommandParameter="{TemplateBinding CommandParameter}"
|
|
Content="{TemplateBinding Content}"
|
|
ContentTemplate="{TemplateBinding ContentTemplate}"
|
|
CornerRadius="0"
|
|
FontFamily="{TemplateBinding FontFamily}"
|
|
FontSize="{TemplateBinding FontSize}"
|
|
FontWeight="{TemplateBinding FontWeight}"
|
|
DockPanel.Dock="Left"
|
|
Theme="{DynamicResource SemiSplitButtonElement}" />
|
|
<Rectangle
|
|
Name="SeparatorBorder"
|
|
Width="{DynamicResource SplitButtonSeparatorWidth}"
|
|
VerticalAlignment="Stretch"
|
|
DockPanel.Dock="Left"
|
|
Fill="Transparent"
|
|
StrokeThickness="0" />
|
|
<Button
|
|
Name="PART_SecondaryButton"
|
|
Padding="4,0"
|
|
VerticalAlignment="Stretch"
|
|
HorizontalContentAlignment="Center"
|
|
VerticalContentAlignment="Center"
|
|
BorderThickness="{TemplateBinding BorderThickness}"
|
|
CornerRadius="0"
|
|
Theme="{DynamicResource SemiSplitButtonElement}">
|
|
<PathIcon
|
|
Theme="{DynamicResource InnerPathIcon}"
|
|
Data="{DynamicResource SplitButtonIconGlyph}"
|
|
Foreground="{Binding $parent[Button].Foreground}" />
|
|
</Button>
|
|
</DockPanel>
|
|
</Border>
|
|
</ControlTemplate>
|
|
</Setter>
|
|
|
|
<Style Selector="^ /template/ Button">
|
|
<Setter Property="Foreground" Value="{DynamicResource ButtonDefaultPrimaryForeground}" />
|
|
<Setter Property="BorderBrush" Value="{DynamicResource ButtonDefaultBorderBrush}" />
|
|
<Setter Property="Background" Value="{DynamicResource ButtonDefaultBackground}" />
|
|
<Style Selector="^:pointerover">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonDefaultPointeroverBackground}" />
|
|
<Setter Property="BorderBrush" Value="{DynamicResource ButtonDefaultPointeroverBorderBrush}" />
|
|
</Style>
|
|
<Style Selector="^:pressed">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonDefaultPressedBackground}" />
|
|
<Setter Property="BorderBrush" Value="{DynamicResource ButtonDefaultPressedBorderBrush}" />
|
|
</Style>
|
|
</Style>
|
|
|
|
|
|
<Style Selector="^.Secondary /template/ Button">
|
|
<Setter Property="Foreground" Value="{DynamicResource ButtonDefaultSecondaryForeground}" />
|
|
</Style>
|
|
<Style Selector="^.Tertiary /template/ Button">
|
|
<Setter Property="Foreground" Value="{DynamicResource ButtonDefaultTertiaryForeground}" />
|
|
</Style>
|
|
<Style Selector="^.Success /template/ Button">
|
|
<Setter Property="Foreground" Value="{DynamicResource ButtonDefaultSuccessForeground}" />
|
|
</Style>
|
|
<Style Selector="^.Warning /template/ Button">
|
|
<Setter Property="Foreground" Value="{DynamicResource ButtonDefaultWarningForeground}" />
|
|
</Style>
|
|
<Style Selector="^.Danger /template/ Button">
|
|
<Setter Property="Foreground" Value="{DynamicResource ButtonDefaultDangerForeground}" />
|
|
</Style>
|
|
<Style Selector="^:checked">
|
|
<Style Selector="^ /template/ Button">
|
|
<Setter Property="FocusAdorner">
|
|
<FocusAdornerTemplate>
|
|
<Border Theme="{DynamicResource AdornerLayerBorder}"
|
|
Classes="Solid" />
|
|
</FocusAdornerTemplate>
|
|
</Setter>
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidPrimaryBackground}" />
|
|
<Setter Property="Foreground" Value="{DynamicResource ButtonSolidForeground}" />
|
|
<Style Selector="^:pointerover">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidPrimaryPointeroverBackground}" />
|
|
</Style>
|
|
<Style Selector="^:pressed">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidPrimaryPressedBackground}" />
|
|
</Style>
|
|
</Style>
|
|
|
|
<Style Selector="^.Secondary /template/ Button">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidSecondaryBackground}" />
|
|
<Style Selector="^:pointerover">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidSecondaryPointeroverBackground}" />
|
|
</Style>
|
|
<Style Selector="^:pressed">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidSecondaryPressedBackground}" />
|
|
</Style>
|
|
</Style>
|
|
<Style Selector="^.Tertiary /template/ Button">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidTertiaryBackground}" />
|
|
<Style Selector="^:pointerover">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidTertiaryPointeroverBackground}" />
|
|
</Style>
|
|
<Style Selector="^:pressed">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidTertiaryPressedBackground}" />
|
|
</Style>
|
|
</Style>
|
|
<Style Selector="^.Success /template/ Button">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidSuccessBackground}" />
|
|
<Style Selector="^:pointerover">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidSuccessPointeroverBackground}" />
|
|
</Style>
|
|
<Style Selector="^:pressed">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidSuccessPressedBackground}" />
|
|
</Style>
|
|
</Style>
|
|
<Style Selector="^.Warning /template/ Button">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidWarningBackground}" />
|
|
<Style Selector="^:pointerover">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidWarningPointeroverBackground}" />
|
|
</Style>
|
|
<Style Selector="^:pressed">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidWarningPressedBackground}" />
|
|
</Style>
|
|
</Style>
|
|
<Style Selector="^.Danger /template/ Button">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidDangerBackground}" />
|
|
<Style Selector="^:pointerover">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidDangerPointeroverBackground}" />
|
|
</Style>
|
|
<Style Selector="^:pressed">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidDangerPressedBackground}" />
|
|
</Style>
|
|
</Style>
|
|
</Style>
|
|
<Style Selector="^.Large /template/ Button#PART_PrimaryButton">
|
|
<Setter Property="Padding" Value="{DynamicResource ButtonLargePadding}" />
|
|
</Style>
|
|
<Style Selector="^.Large">
|
|
<Setter Property="MinHeight" Value="{DynamicResource ButtonLargeHeight}" />
|
|
</Style>
|
|
<Style Selector="^.Small /template/ Button#PART_PrimaryButton">
|
|
<Setter Property="Padding" Value="{DynamicResource ButtonSmallPadding}" />
|
|
</Style>
|
|
<Style Selector="^.Small">
|
|
<Setter Property="MinHeight" Value="{DynamicResource ButtonSmallHeight}" />
|
|
</Style>
|
|
<Style Selector="^:disabled /template/ Button">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonDefaultBackground}" />
|
|
<Setter Property="Foreground" Value="{DynamicResource ButtonDefaultDisabledForeground}" />
|
|
</Style>
|
|
<!-- only for ToggleSplitButton -->
|
|
<Style Selector="^:checked:disabled /template/ Button">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidDisabledBackground}" />
|
|
<Setter Property="Foreground" Value="{DynamicResource ButtonSolidDisabledForeground}" />
|
|
</Style>
|
|
</ControlTheme>
|
|
|
|
<ControlTheme
|
|
x:Key="SolidSplitButton"
|
|
BasedOn="{StaticResource {x:Type SplitButton}}"
|
|
TargetType="SplitButton">
|
|
<Style Selector="^ /template/ Button">
|
|
<Setter Property="FocusAdorner">
|
|
<FocusAdornerTemplate>
|
|
<Border Theme="{DynamicResource AdornerLayerBorder}"
|
|
Classes="Solid" />
|
|
</FocusAdornerTemplate>
|
|
</Setter>
|
|
<Setter Property="Foreground" Value="{DynamicResource ButtonSolidForeground}" />
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidPrimaryBackground}" />
|
|
|
|
<Style Selector="^:pointerover">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidPrimaryPointeroverBackground}" />
|
|
</Style>
|
|
<Style Selector="^:pressed">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidPrimaryPressedBackground}" />
|
|
</Style>
|
|
</Style>
|
|
|
|
<Style Selector="^.Primary /template/ Button">
|
|
<Setter Property="Foreground" Value="{DynamicResource ButtonSolidForeground}" />
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidPrimaryBackground}" />
|
|
<Style Selector="^:pointerover">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidPrimaryPointeroverBackground}" />
|
|
</Style>
|
|
<Style Selector="^:pressed">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidPrimaryPressedBackground}" />
|
|
</Style>
|
|
</Style>
|
|
<Style Selector="^.Secondary /template/ Button">
|
|
<Setter Property="Foreground" Value="{DynamicResource ButtonSolidForeground}" />
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidSecondaryBackground}" />
|
|
<Style Selector="^:pointerover">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidSecondaryPointeroverBackground}" />
|
|
</Style>
|
|
<Style Selector="^:pressed">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidSecondaryPressedBackground}" />
|
|
</Style>
|
|
</Style>
|
|
<Style Selector="^.Tertiary /template/ Button">
|
|
<Setter Property="Foreground" Value="{DynamicResource ButtonSolidForeground}" />
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidTertiaryBackground}" />
|
|
<Style Selector="^:pointerover">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidTertiaryPointeroverBackground}" />
|
|
</Style>
|
|
<Style Selector="^:pressed">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidTertiaryPressedBackground}" />
|
|
</Style>
|
|
</Style>
|
|
<Style Selector="^.Success /template/ Button">
|
|
<Setter Property="Foreground" Value="{DynamicResource ButtonSolidForeground}" />
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidSuccessBackground}" />
|
|
<Style Selector="^:pointerover">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidSuccessPointeroverBackground}" />
|
|
</Style>
|
|
<Style Selector="^:pressed">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidSuccessPressedBackground}" />
|
|
</Style>
|
|
</Style>
|
|
<Style Selector="^.Warning /template/ Button">
|
|
<Setter Property="Foreground" Value="{DynamicResource ButtonSolidForeground}" />
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidWarningBackground}" />
|
|
<Style Selector="^:pointerover">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidWarningPointeroverBackground}" />
|
|
</Style>
|
|
<Style Selector="^:pressed">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidWarningPressedBackground}" />
|
|
</Style>
|
|
</Style>
|
|
<Style Selector="^.Danger /template/ Button">
|
|
<Setter Property="Foreground" Value="{DynamicResource ButtonSolidForeground}" />
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidDangerBackground}" />
|
|
<Style Selector="^:pointerover">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidDangerPointeroverBackground}" />
|
|
</Style>
|
|
<Style Selector="^:pressed">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidDangerPressedBackground}" />
|
|
</Style>
|
|
</Style>
|
|
|
|
<Style Selector="^:disabled /template/ Button">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonSolidDisabledBackground}" />
|
|
<Setter Property="Foreground" Value="{DynamicResource ButtonSolidDisabledForeground}" />
|
|
</Style>
|
|
</ControlTheme>
|
|
|
|
<ControlTheme
|
|
x:Key="OutlineSplitButton"
|
|
BasedOn="{StaticResource {x:Type SplitButton}}"
|
|
TargetType="SplitButton">
|
|
<Style Selector="^ /template/ Button">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonOutlineBackground}" />
|
|
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlineBorderBrush}" />
|
|
<Style Selector="^:pointerover">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonOutlinePointeroverBackground}" />
|
|
</Style>
|
|
<Style Selector="^:pressed">
|
|
<Setter Property="Background" Value="{DynamicResource ButtonOutlinePressedBackground}" />
|
|
</Style>
|
|
</Style>
|
|
<Style Selector="^.Success /template/ Button">
|
|
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlineSuccessBorderBrush}" />
|
|
</Style>
|
|
<Style Selector="^.Warning /template/ Button">
|
|
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlineWarningBorderBrush}" />
|
|
</Style>
|
|
<Style Selector="^.Danger /template/ Button">
|
|
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlineDangerBorderBrush}" />
|
|
</Style>
|
|
<Style Selector="^:disabled /template/ Button">
|
|
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlineBorderBrush}" />
|
|
<Setter Property="Background" Value="{DynamicResource ButtonOutlineBackground}" />
|
|
<Setter Property="Foreground" Value="{DynamicResource ButtonDefaultDisabledForeground}" />
|
|
</Style>
|
|
</ControlTheme>
|
|
|
|
<ControlTheme
|
|
x:Key="BorderlessSplitButton"
|
|
BasedOn="{StaticResource {x:Type SplitButton}}"
|
|
TargetType="SplitButton">
|
|
<Style Selector="^ /template/ Button">
|
|
<Setter Property="Background" Value="Transparent" />
|
|
<Setter Property="BorderBrush" Value="Transparent" />
|
|
</Style>
|
|
<Style Selector="^:disabled /template/ Button">
|
|
<Setter Property="BorderBrush" Value="Transparent" />
|
|
<Setter Property="Background" Value="Transparent" />
|
|
<Setter Property="Foreground" Value="{DynamicResource ButtonDefaultDisabledForeground}" />
|
|
</Style>
|
|
</ControlTheme>
|
|
</ResourceDictionary> |