feat: unify to only one template.

This commit is contained in:
rabbitism
2024-02-23 18:27:43 +08:00
parent 0965f9d1f8
commit 791269a34e
2 changed files with 20 additions and 57 deletions

View File

@@ -23,20 +23,13 @@
<Button u:ToolBar.OverflowMode="AsNeeded" Content="Button 3" /> <Button u:ToolBar.OverflowMode="AsNeeded" Content="Button 3" />
<ToggleButton Content="Toggle"></ToggleButton> <ToggleButton Content="Toggle"></ToggleButton>
</u:ToolBar> </u:ToolBar>
<u:ToolBar <u:EnumSelector EnumType="Orientation" Name="Orientation" DockPanel.Dock="Top"></u:EnumSelector>
HorizontalAlignment="Left"
DockPanel.Dock="Top"
ItemsSource="{Binding Items}">
<u:ToolBar.ItemTemplate>
<template:ToolBarItemTemplateSelector />
</u:ToolBar.ItemTemplate>
</u:ToolBar>
<u:ToolBar <u:ToolBar
HorizontalAlignment="Left" HorizontalAlignment="Left"
VerticalAlignment="Top" VerticalAlignment="Top"
DockPanel.Dock="Top" DockPanel.Dock="Top"
ItemsSource="{Binding Items}" Orientation="{Binding #Orientation.Value}"
Orientation="Vertical"> ItemsSource="{Binding Items}">
<u:ToolBar.ItemTemplate> <u:ToolBar.ItemTemplate>
<template:ToolBarItemTemplateSelector /> <template:ToolBarItemTemplateSelector />
</u:ToolBar.ItemTemplate> </u:ToolBar.ItemTemplate>

View File

@@ -41,6 +41,7 @@
Theme="{DynamicResource CardBorder}"> Theme="{DynamicResource CardBorder}">
<DockPanel LastChildFill="True"> <DockPanel LastChildFill="True">
<ContentPresenter <ContentPresenter
Name="PART_Header"
Margin="8,0" Margin="8,0"
HorizontalAlignment="Left" HorizontalAlignment="Left"
VerticalAlignment="Center" VerticalAlignment="Center"
@@ -50,14 +51,14 @@
DockPanel.Dock="Left" DockPanel.Dock="Left"
IsVisible="{TemplateBinding Header, IsVisible="{TemplateBinding Header,
Converter={x:Static ObjectConverters.IsNotNull}}" /> Converter={x:Static ObjectConverters.IsNotNull}}" />
<Panel Name="PART_PopupButton" DockPanel.Dock="Right"> <Panel Name="PART_PopupButtonPanel" DockPanel.Dock="Right">
<ToggleButton <ToggleButton
Name="button" Name="button"
IsVisible="False" IsVisible="False"
Padding="8,0" Padding="8,0"
VerticalAlignment="Stretch" VerticalAlignment="Stretch"
Theme="{DynamicResource ToolBarExpandToggleButton}"> Theme="{DynamicResource ToolBarExpandToggleButton}">
<PathIcon Height="16" Data="{DynamicResource ToolBarHorizontalMoreGlyph}"></PathIcon> <PathIcon Name="PART_Icon" Height="16" Data="{DynamicResource ToolBarHorizontalMoreGlyph}"></PathIcon>
</ToggleButton> </ToggleButton>
<Popup <Popup
IsLightDismissEnabled="True" IsLightDismissEnabled="True"
@@ -82,51 +83,20 @@
</Style> </Style>
<Style Selector="^[Orientation=Vertical]"> <Style Selector="^[Orientation=Vertical]">
<Setter Property="PopupPlacement" Value="RightEdgeAlignedTop" /> <Setter Property="PopupPlacement" Value="RightEdgeAlignedTop" />
<Setter Property="Template"> <Style Selector="^ /template/ ContentPresenter#PART_Header">
<ControlTemplate TargetType="u:ToolBar"> <Setter Property="DockPanel.Dock" Value="Top"></Setter>
<Border </Style>
Padding="2" <Style Selector="^ /template/ Panel#PART_PopupButtonPanel">
HorizontalAlignment="{TemplateBinding HorizontalAlignment}" <Setter Property="DockPanel.Dock" Value="Bottom"></Setter>
VerticalAlignment="{TemplateBinding VerticalAlignment}" </Style>
CornerRadius="4" <Style Selector="^ /template/ ToggleButton#button">
Theme="{DynamicResource CardBorder}"> <Setter Property="Padding" Value="0 8"></Setter>
<DockPanel LastChildFill="True"> </Style>
<ContentPresenter <Style Selector="^ /template/ PathIcon#PART_Icon">
Margin="8,0" <Setter Property="Data" Value="{DynamicResource ToolBarVerticalMoreGlyph}"></Setter>
HorizontalAlignment="Center" <Setter Property="Width" Value="16"></Setter>
VerticalAlignment="Top" <Setter Property="Height" Value="{x:Static x:Double.NaN}"></Setter>
Foreground="{DynamicResource SemiColorText2}" </Style>
Content="{TemplateBinding Header}"
ContentTemplate="{TemplateBinding HeaderTemplate}"
DockPanel.Dock="Top"
IsVisible="{TemplateBinding Header,
Converter={x:Static ObjectConverters.IsNotNull}}" />
<Panel Name="PART_PopupButton" DockPanel.Dock="Bottom">
<ToggleButton
Name="button"
IsVisible="False"
Padding="0 8"
Theme="{DynamicResource ToolBarExpandToggleButton}">
<PathIcon Width="16" Data="{DynamicResource ToolBarVerticalMoreGlyph}" />
</ToggleButton>
<Popup
IsLightDismissEnabled="True"
IsOpen="{Binding #button.IsChecked, Mode=TwoWay}"
Placement="{TemplateBinding PopupPlacement}"
PlacementTarget="{Binding #button}">
<Border Theme="{DynamicResource CardBorder}" Padding="2">
<StackPanel Name="{x:Static u:ToolBar.PART_OverflowPanel}" />
</Border>
</Popup>
</Panel>
<ItemsPresenter
HorizontalAlignment="Left"
VerticalAlignment="Center"
ItemsPanel="{TemplateBinding ItemsPanel}" />
</DockPanel>
</Border>
</ControlTemplate>
</Setter>
</Style> </Style>
<Style Selector="^:overflow /template/ ToggleButton#button"> <Style Selector="^:overflow /template/ ToggleButton#button">
<Setter Property="IsVisible" Value="True"></Setter> <Setter Property="IsVisible" Value="True"></Setter>