Browse Source

Simplify style by integrating background and root Borders

pull/7422/head
robloo 4 years ago
parent
commit
67cfbe3732
  1. 35
      src/Avalonia.Themes.Fluent/Controls/SplitButton.xaml

35
src/Avalonia.Themes.Fluent/Controls/SplitButton.xaml

@ -31,8 +31,12 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<!-- A Border was added here since Avalonia does not support Background/Border/CornerRadius on Grid directly -->
<Border Background="Transparent"
<!-- A Border was added here since Avalonia does not support Background/Border/CornerRadius on Grid directly
This also allowed removing the extra background border and integrating it here. -->
<Border x:Name="RootBorder"
Background="Transparent"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}">
<!-- In WinUI, a separate child style for the inner buttons is provided here.
For avalonia that style is simplified and pulled out separately below.
@ -56,13 +60,6 @@
Grid.Column="2"
CornerRadius="{Binding $parent[SplitButton].CornerRadius, Converter={StaticResource RightCornerRadiusFilterConverter}}" />
<!-- Changed from Grid to Border to support Background/Border/CornerRadius properties -->
<Border x:Name="Border"
Grid.ColumnSpan="3"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}" />
<Button x:Name="PART_PrimaryButton"
Grid.Column="0"
Foreground="{TemplateBinding Foreground}"
@ -148,7 +145,7 @@
</Style>
<!-- Disabled State -->
<Style Selector="SplitButton:disabled /template/ Border#Border">
<Style Selector="SplitButton:disabled /template/ Border#RootBorder">
<Setter Property="BorderBrush" Value="{DynamicResource SplitButtonBorderBrushDisabled}" />
</Style>
<Style Selector="SplitButton:disabled /template/ Path#DropDownGlyphPath">
@ -167,7 +164,7 @@
<Style Selector="SplitButton:flyout-open /template/ Border#SecondaryBackgroundBorder">
<Setter Property="Background" Value="{DynamicResource SplitButtonBackgroundPressed}" />
</Style>
<Style Selector="SplitButton:flyout-open /template/ Border#Border">
<Style Selector="SplitButton:flyout-open /template/ Border#RootBorder">
<Setter Property="BorderBrush" Value="{DynamicResource SplitButtonBorderBrushPressed}" />
</Style>
<Style Selector="SplitButton:flyout-open /template/ Button#PART_PrimaryButton">
@ -184,7 +181,7 @@
<Style Selector="SplitButton:touch-pressed /template/ Border#SecondaryBackgroundBorder">
<Setter Property="Background" Value="{DynamicResource SplitButtonBackgroundPressed}" />
</Style>
<Style Selector="SplitButton:touch-pressed /template/ Border#Border">
<Style Selector="SplitButton:touch-pressed /template/ Border#RootBorder">
<Setter Property="BorderBrush" Value="{DynamicResource SplitButtonBorderBrushPressed}" />
</Style>
<Style Selector="SplitButton:touch-pressed /template/ Button#PART_PrimaryButton">
@ -249,7 +246,7 @@
<Style Selector="SplitButton:checked /template/ Border#SecondaryBackgroundBorder">
<Setter Property="Background" Value="{DynamicResource SplitButtonBackgroundChecked}" />
</Style>
<Style Selector="SplitButton:checked /template/ Border#Border">
<Style Selector="SplitButton:checked /template/ Border#RootBorder">
<Setter Property="BorderBrush" Value="{DynamicResource SplitButtonBorderBrushChecked}" />
</Style>
<Style Selector="SplitButton:checked /template/ Button#PART_PrimaryButton">
@ -269,7 +266,7 @@
<Style Selector="SplitButton:checked-flyout-open /template/ Border#SecondaryBackgroundBorder">
<Setter Property="Background" Value="{DynamicResource SplitButtonBackgroundCheckedPressed}" />
</Style>
<Style Selector="SplitButton:checked-flyout-open /template/ Border#Border">
<Style Selector="SplitButton:checked-flyout-open /template/ Border#RootBorder">
<Setter Property="BorderBrush" Value="{DynamicResource SplitButtonBorderBrushCheckedPressed}" />
</Style>
<Style Selector="SplitButton:checked-flyout-open /template/ Button#PART_PrimaryButton">
@ -289,7 +286,7 @@
<Style Selector="SplitButton:checked-touch-pressed /template/ Border#SecondaryBackgroundBorder">
<Setter Property="Background" Value="{DynamicResource SplitButtonBackgroundCheckedPressed}" />
</Style>
<Style Selector="SplitButton:checked-touch-pressed /template/ Border#Border">
<Style Selector="SplitButton:checked-touch-pressed /template/ Border#RootBorder">
<Setter Property="BorderBrush" Value="{DynamicResource SplitButtonBorderBrushCheckedPressed}" />
</Style>
<Style Selector="SplitButton:checked-touch-pressed /template/ Button#PART_PrimaryButton">
@ -303,7 +300,7 @@
</Style>
<!-- CheckedPrimaryPointerOver State -->
<Style Selector="SplitButton:checked-primary-pointerover /template/ Border#Border">
<Style Selector="SplitButton:checked-primary-pointerover /template/ Border#RootBorder">
<Setter Property="BorderBrush" Value="{DynamicResource SplitButtonBorderBrushChecked}" />
</Style>
<Style Selector="SplitButton:checked-primary-pointerover /template/ Border#PrimaryBackgroundBorder">
@ -324,7 +321,7 @@
</Style>
<!-- CheckedPrimaryPressed State -->
<Style Selector="SplitButton:checked-primary-pressed /template/ Border#Border">
<Style Selector="SplitButton:checked-primary-pressed /template/ Border#RootBorder">
<Setter Property="BorderBrush" Value="{DynamicResource SplitButtonBorderBrushChecked}" />
</Style>
<Style Selector="SplitButton:checked-primary-pressed /template/ Border#PrimaryBackgroundBorder">
@ -345,7 +342,7 @@
</Style>
<!-- CheckedSecondaryPointerOver State -->
<Style Selector="SplitButton:checked-secondary-pointerover /template/ Border#Border">
<Style Selector="SplitButton:checked-secondary-pointerover /template/ Border#RootBorder">
<Setter Property="BorderBrush" Value="{DynamicResource SplitButtonBorderBrushChecked}" />
</Style>
<Style Selector="SplitButton:checked-secondary-pointerover /template/ Border#PrimaryBackgroundBorder">
@ -366,7 +363,7 @@
</Style>
<!-- CheckedSecondaryPressed State -->
<Style Selector="SplitButton:checked-secondary-pressed /template/ Border#Border">
<Style Selector="SplitButton:checked-secondary-pressed /template/ Border#RootBorder">
<Setter Property="BorderBrush" Value="{DynamicResource SplitButtonBorderBrushChecked}" />
</Style>
<Style Selector="SplitButton:checked-secondary-pressed /template/ Border#PrimaryBackgroundBorder">

Loading…
Cancel
Save