mirror of
https://gitcode.com/gh_mirrors/se/Semi.Avalonia
synced 2026-05-02 05:51:28 +08:00
adjust CornerRadius & MinWidth for SplitButton (#725)
* feat: support CornerRadius for SplitButton. * Update src/Semi.Avalonia/Controls/SplitButton.axaml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * feat: refactor SplitButton layout to use Grid for better structure. --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -1,10 +1,13 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:iri="https://irihi.tech/shared">
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<StackPanel Width="500" Height="500" Margin="20" Spacing="8">
|
<StackPanel Width="500" Height="500" Margin="20" Spacing="8">
|
||||||
<SplitButton
|
<SplitButton
|
||||||
Theme="{DynamicResource SolidSplitButton}"
|
Theme="{DynamicResource OutlineSplitButton}"
|
||||||
|
Classes="Danger"
|
||||||
|
CornerRadius="12"
|
||||||
Content="Hello" />
|
Content="Hello" />
|
||||||
<ToggleSplitButton
|
<ToggleSplitButton
|
||||||
IsChecked="True"
|
IsChecked="True"
|
||||||
@@ -73,47 +76,40 @@
|
|||||||
<Setter Property="Cursor" Value="Hand" />
|
<Setter Property="Cursor" Value="Hand" />
|
||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
<ControlTemplate TargetType="SplitButton">
|
<ControlTemplate TargetType="SplitButton">
|
||||||
<Border
|
<Grid
|
||||||
BackgroundSizing="OuterBorderEdge"
|
ColumnDefinitions="*,Auto"
|
||||||
ClipToBounds="True"
|
ColumnSpacing="{DynamicResource SplitButtonSeparatorWidth}">
|
||||||
CornerRadius="{TemplateBinding CornerRadius}">
|
<Button
|
||||||
<DockPanel>
|
Name="PART_PrimaryButton"
|
||||||
<Button
|
Grid.Column="0"
|
||||||
Name="PART_SecondaryButton"
|
Padding="{TemplateBinding Padding}"
|
||||||
Padding="4,0"
|
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
|
||||||
BorderThickness="{TemplateBinding BorderThickness}"
|
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
|
||||||
CornerRadius="0"
|
BorderThickness="{TemplateBinding BorderThickness}"
|
||||||
DockPanel.Dock="Right"
|
Command="{TemplateBinding Command}"
|
||||||
Theme="{DynamicResource SemiSplitButtonElement}">
|
CommandParameter="{TemplateBinding CommandParameter}"
|
||||||
<PathIcon
|
Content="{TemplateBinding Content}"
|
||||||
Theme="{DynamicResource InnerPathIcon}"
|
ContentTemplate="{TemplateBinding ContentTemplate}"
|
||||||
Data="{DynamicResource SplitButtonIconGlyph}"
|
CornerRadius="{TemplateBinding CornerRadius, Converter={iri:CornerRadiusMixerConverter Left}}"
|
||||||
Foreground="{Binding $parent[Button].Foreground}" />
|
FontFamily="{TemplateBinding FontFamily}"
|
||||||
</Button>
|
FontSize="{TemplateBinding FontSize}"
|
||||||
<Rectangle
|
FontWeight="{TemplateBinding FontWeight}"
|
||||||
Name="SeparatorBorder"
|
Theme="{DynamicResource SemiSplitButtonElement}" />
|
||||||
Width="{DynamicResource SplitButtonSeparatorWidth}"
|
<Button
|
||||||
VerticalAlignment="Stretch"
|
Name="PART_SecondaryButton"
|
||||||
DockPanel.Dock="Right"
|
Grid.Column="1"
|
||||||
Fill="Transparent"
|
Padding="0"
|
||||||
StrokeThickness="0" />
|
MinHeight="{TemplateBinding MinHeight}"
|
||||||
<Button
|
MinWidth="{Binding $self.MinHeight}"
|
||||||
Name="PART_PrimaryButton"
|
BorderThickness="{TemplateBinding BorderThickness}"
|
||||||
Padding="{TemplateBinding Padding}"
|
CornerRadius="{TemplateBinding CornerRadius, Converter={iri:CornerRadiusMixerConverter Right}}"
|
||||||
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
|
Theme="{DynamicResource SemiSplitButtonElement}">
|
||||||
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
|
<PathIcon
|
||||||
BorderThickness="{TemplateBinding BorderThickness}"
|
Theme="{DynamicResource InnerPathIcon}"
|
||||||
Command="{TemplateBinding Command}"
|
Data="{DynamicResource SplitButtonIconGlyph}"
|
||||||
CommandParameter="{TemplateBinding CommandParameter}"
|
Foreground="{Binding $parent[Button].Foreground}" />
|
||||||
Content="{TemplateBinding Content}"
|
</Button>
|
||||||
ContentTemplate="{TemplateBinding ContentTemplate}"
|
</Grid>
|
||||||
CornerRadius="0"
|
|
||||||
FontFamily="{TemplateBinding FontFamily}"
|
|
||||||
FontSize="{TemplateBinding FontSize}"
|
|
||||||
FontWeight="{TemplateBinding FontWeight}"
|
|
||||||
Theme="{DynamicResource SemiSplitButtonElement}" />
|
|
||||||
</DockPanel>
|
|
||||||
</Border>
|
|
||||||
</ControlTemplate>
|
</ControlTemplate>
|
||||||
</Setter>
|
</Setter>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user