Skip to content

Commit d884847

Browse files
committed
Merge pull request AvaloniaUI#7723 from AvaloniaUI/fix-expander
Fix expander header stretching
1 parent 2eb51b8 commit d884847

File tree

2 files changed

+59
-8
lines changed

2 files changed

+59
-8
lines changed

src/Avalonia.Themes.Default/Expander.xaml

Lines changed: 52 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,36 @@
11
<Styles xmlns="https://github.com/avaloniaui">
2-
2+
<Design.PreviewWith>
3+
<Border Padding="20">
4+
<StackPanel Orientation="Vertical" Spacing="20" Width="350">
5+
<Expander ExpandDirection="Up" Header="Expand Up" CornerRadius="25">
6+
<Expander.Header>
7+
<Grid ColumnDefinitions="*, Auto">
8+
<TextBlock Grid.Column="0" Text="Expand" />
9+
<TextBlock Grid.Column="1" Text="Up" />
10+
</Grid>
11+
</Expander.Header>
12+
<StackPanel>
13+
<TextBlock>Expanded content</TextBlock>
14+
</StackPanel>
15+
</Expander>
16+
<Expander ExpandDirection="Down" Header="Expand Down" CornerRadius="25">
17+
<StackPanel>
18+
<TextBlock>Expanded content</TextBlock>
19+
</StackPanel>
20+
</Expander>
21+
<Expander ExpandDirection="Left" Header="Expand Left" CornerRadius="25">
22+
<StackPanel>
23+
<TextBlock>Expanded content</TextBlock>
24+
</StackPanel>
25+
</Expander>
26+
<Expander ExpandDirection="Right" Header="Expand Right" CornerRadius="25">
27+
<StackPanel>
28+
<TextBlock>Expanded content</TextBlock>
29+
</StackPanel>
30+
</Expander>
31+
</StackPanel>
32+
</Border>
33+
</Design.PreviewWith>
334
<Style Selector="Expander">
435
<Setter Property="ContentTransition">
536
<Setter.Value>
@@ -15,7 +46,10 @@
1546
BorderThickness="{TemplateBinding BorderThickness}"
1647
CornerRadius="{TemplateBinding CornerRadius}">
1748
<Grid RowDefinitions="Auto,*">
18-
<ToggleButton Name="PART_toggle" Grid.Row="0" Content="{TemplateBinding Header}" IsChecked="{TemplateBinding IsExpanded, Mode=TwoWay}" />
49+
<ToggleButton Name="PART_toggle" Grid.Row="0"
50+
HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
51+
VerticalAlignment="{TemplateBinding VerticalAlignment}"
52+
Content="{TemplateBinding Header}" IsChecked="{TemplateBinding IsExpanded, Mode=TwoWay}" />
1953
<ContentPresenter Name="PART_ContentPresenter"
2054
Grid.Row="1"
2155
IsVisible="{TemplateBinding IsExpanded}"
@@ -37,7 +71,10 @@
3771
BorderThickness="{TemplateBinding BorderThickness}"
3872
CornerRadius="{TemplateBinding CornerRadius}">
3973
<Grid RowDefinitions="*,Auto">
40-
<ToggleButton Name="PART_toggle" Grid.Row="1" Content="{TemplateBinding Header}" IsChecked="{TemplateBinding IsExpanded, Mode=TwoWay}" />
74+
<ToggleButton Name="PART_toggle" Grid.Row="1"
75+
HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
76+
VerticalAlignment="{TemplateBinding VerticalAlignment}"
77+
Content="{TemplateBinding Header}" IsChecked="{TemplateBinding IsExpanded, Mode=TwoWay}" />
4178
<ContentPresenter Name="PART_ContentPresenter"
4279
Grid.Row="0"
4380
IsVisible="{TemplateBinding IsExpanded}"
@@ -59,7 +96,10 @@
5996
BorderThickness="{TemplateBinding BorderThickness}"
6097
CornerRadius="{TemplateBinding CornerRadius}">
6198
<Grid ColumnDefinitions="Auto,*">
62-
<ToggleButton Name="PART_toggle" Grid.Column="0" Content="{TemplateBinding Header}" IsChecked="{TemplateBinding IsExpanded, Mode=TwoWay}" />
99+
<ToggleButton Name="PART_toggle" Grid.Column="0"
100+
HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
101+
VerticalAlignment="{TemplateBinding VerticalAlignment}"
102+
Content="{TemplateBinding Header}" IsChecked="{TemplateBinding IsExpanded, Mode=TwoWay}" />
63103
<ContentPresenter Name="PART_ContentPresenter"
64104
Grid.Column="1"
65105
IsVisible="{TemplateBinding IsExpanded}"
@@ -81,7 +121,10 @@
81121
BorderThickness="{TemplateBinding BorderThickness}"
82122
CornerRadius="{TemplateBinding CornerRadius}">
83123
<Grid ColumnDefinitions="*,Auto">
84-
<ToggleButton Name="PART_toggle" Grid.Column="1" Content="{TemplateBinding Header}" IsChecked="{TemplateBinding IsExpanded, Mode=TwoWay}" />
124+
<ToggleButton Name="PART_toggle" Grid.Column="1"
125+
HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
126+
VerticalAlignment="{TemplateBinding VerticalAlignment}"
127+
Content="{TemplateBinding Header}" IsChecked="{TemplateBinding IsExpanded, Mode=TwoWay}" />
85128
<ContentPresenter Name="PART_ContentPresenter"
86129
Grid.Column="0"
87130
IsVisible="{TemplateBinding IsExpanded}"
@@ -96,10 +139,12 @@
96139
</Setter>
97140
</Style>
98141
<Style Selector="Expander /template/ ToggleButton#PART_toggle">
142+
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
143+
<Setter Property="Background" Value="Transparent" />
99144
<Setter Property="Template">
100145
<ControlTemplate>
101-
<Border BorderThickness="1" Background="Transparent">
102-
<Grid ColumnDefinitions="Auto,Auto">
146+
<Border BorderThickness="1" Background="{TemplateBinding Background}">
147+
<Grid ColumnDefinitions="Auto,*">
103148
<Border Grid.Column="0" Width="20" Height="20" HorizontalAlignment="Center" VerticalAlignment="Center">
104149
<Path Fill="{DynamicResource ThemeForegroundBrush}"
105150
HorizontalAlignment="Center"

src/Avalonia.Themes.Fluent/Controls/Expander.xaml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@
55
<Border Padding="20">
66
<StackPanel Orientation="Vertical" Spacing="20" Width="350">
77
<Expander ExpandDirection="Up" Header="Expand Up" CornerRadius="25">
8+
<Expander.Header>
9+
<Grid ColumnDefinitions="*, Auto">
10+
<TextBlock Grid.Column="0" Text="Expand" />
11+
<TextBlock Grid.Column="1" Text="Up" />
12+
</Grid>
13+
</Expander.Header>
814
<StackPanel>
915
<TextBlock>Expanded content</TextBlock>
1016
</StackPanel>
@@ -90,7 +96,7 @@
9096
</Style>
9197

9298
<Style Selector="Expander /template/ ToggleButton#ExpanderHeader">
93-
<Setter Property="HorizontalContentAlignment" Value="Left" />
99+
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
94100
<Setter Property="Template">
95101
<ControlTemplate>
96102
<Border x:Name="ToggleButtonBackground">

0 commit comments

Comments
 (0)