Merge pull request #437 from irihitech/435-timeline

Extract timeline local values to style
This commit is contained in:
Dong Bin
2024-10-21 11:51:56 +08:00
committed by GitHub
2 changed files with 26 additions and 25 deletions

View File

@@ -14,47 +14,43 @@
mc:Ignorable="d"> mc:Ignorable="d">
<UserControl.Resources> <UserControl.Resources>
<ResourceDictionary> <ResourceDictionary>
<selectors:TimelineIconTemplateSelector x:Key="IconSelector" > <selectors:TimelineIconTemplateSelector x:Key="IconSelector">
<SolidColorBrush x:Key="Default" Color="{DynamicResource SemiGray6Color}"></SolidColorBrush> <SolidColorBrush x:Key="Default" Color="{DynamicResource SemiGray6Color}" />
<SolidColorBrush x:Key="Ongoing" Color="{DynamicResource SemiBlue6Color}"></SolidColorBrush> <SolidColorBrush x:Key="Ongoing" Color="{DynamicResource SemiBlue6Color}" />
<SolidColorBrush x:Key="Success" Color="{DynamicResource SemiGreen6Color}"></SolidColorBrush> <SolidColorBrush x:Key="Success" Color="{DynamicResource SemiGreen6Color}" />
<SolidColorBrush x:Key="Warning" Color="{DynamicResource SemiOrange6Color}"></SolidColorBrush> <SolidColorBrush x:Key="Warning" Color="{DynamicResource SemiOrange6Color}" />
<SolidColorBrush x:Key="Error" Color="{DynamicResource SemiRed6Color}"></SolidColorBrush> <SolidColorBrush x:Key="Error" Color="{DynamicResource SemiRed6Color}" />
</selectors:TimelineIconTemplateSelector> </selectors:TimelineIconTemplateSelector>
</ResourceDictionary> </ResourceDictionary>
</UserControl.Resources> </UserControl.Resources>
<WrapPanel> <WrapPanel>
<u:Timeline <u:Timeline
HorizontalAlignment="Left"
ContentMemberBinding="{Binding Description}"
HeaderMemberBinding="{Binding Header}"
IconMemberBinding="{Binding ItemType}"
IconTemplate="{StaticResource IconSelector}"
ItemsSource="{Binding Items}"
Mode="Alternate" Mode="Alternate"
TimeMemberBinding="{Binding Time}" />
<u:Timeline
HorizontalAlignment="Left" HorizontalAlignment="Left"
ContentMemberBinding="{Binding Description}" ContentMemberBinding="{Binding Description}"
HeaderMemberBinding="{Binding Header}" HeaderMemberBinding="{Binding Header}"
IconMemberBinding="{Binding ItemType}" IconMemberBinding="{Binding ItemType}"
IconTemplate="{StaticResource IconSelector}" IconTemplate="{StaticResource IconSelector}"
ItemsSource="{Binding Items}" ItemsSource="{Binding Items}"
TimeMemberBinding="{Binding Time}" >
</u:Timeline>
<u:Timeline
Mode="Left" Mode="Left"
HorizontalAlignment="Left" TimeMemberBinding="{Binding Time}" />
ContentMemberBinding="{Binding Description}"
HeaderMemberBinding="{Binding Header}"
IconMemberBinding="{Binding ItemType}"
IconTemplate="{StaticResource IconSelector}"
ItemsSource="{Binding Items}"
TimeMemberBinding="{Binding Time}" >
</u:Timeline>
<u:Timeline <u:Timeline
Mode="Right"
HorizontalAlignment="Left" HorizontalAlignment="Left"
ContentMemberBinding="{Binding Description}" ContentMemberBinding="{Binding Description}"
HeaderMemberBinding="{Binding Header}" HeaderMemberBinding="{Binding Header}"
IconMemberBinding="{Binding ItemType}" IconMemberBinding="{Binding ItemType}"
IconTemplate="{StaticResource IconSelector}" IconTemplate="{StaticResource IconSelector}"
ItemsSource="{Binding Items}" ItemsSource="{Binding Items}"
TimeMemberBinding="{Binding Time}" > Mode="Right"
</u:Timeline> TimeMemberBinding="{Binding Time}" />
<u:Timeline HorizontalAlignment="Left" Mode="Alternate"> <u:Timeline HorizontalAlignment="Left" Mode="Alternate">
<u:TimelineItem <u:TimelineItem
Content="Step 1" Content="Step 1"

View File

@@ -2,7 +2,8 @@
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:converters="clr-namespace:Ursa.Themes.Semi.Converters" xmlns:converters="clr-namespace:Ursa.Themes.Semi.Converters"
xmlns:u="https://irihi.tech/ursa"> xmlns:u="https://irihi.tech/ursa"
xmlns:usemi="https://irihi.tech/ursa/themes/semi">
<Design.PreviewWith> <Design.PreviewWith>
<StackPanel Width="100" Spacing="20"> <StackPanel Width="100" Spacing="20">
<u:Timeline> <u:Timeline>
@@ -88,8 +89,7 @@
VerticalAlignment="Top" VerticalAlignment="Top"
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}" ContentTemplate="{TemplateBinding ContentTemplate}"
TextElement.FontSize="12" TextElement.FontSize="12"/>
TextElement.Foreground="Gray" />
<TextBlock <TextBlock
Name="{x:Static u:TimelineItem.PART_Time}" Name="{x:Static u:TimelineItem.PART_Time}"
Grid.Row="0" Grid.Row="0"
@@ -97,7 +97,6 @@
Margin="8,2" Margin="8,2"
VerticalAlignment="Top" VerticalAlignment="Top"
FontSize="12" FontSize="12"
Foreground="Gray"
TextWrapping="Wrap"> TextWrapping="Wrap">
<TextBlock.Text> <TextBlock.Text>
<MultiBinding Converter="{StaticResource FormatConverter}"> <MultiBinding Converter="{StaticResource FormatConverter}">
@@ -112,6 +111,12 @@
<Style Selector="^:last /template/ Rectangle.end"> <Style Selector="^:last /template/ Rectangle.end">
<Setter Property="Fill" Value="Transparent" /> <Setter Property="Fill" Value="Transparent" />
</Style> </Style>
<Style Selector="^ /template/ TextBlock#PART_Time">
<Setter Property="Foreground" Value="{DynamicResource TextBlockTertiaryForeground}"/>
</Style>
<Style Selector="^ /template/ ContentPresenter#PART_Content">
<Setter Property="TextElement.Foreground" Value="{DynamicResource TextBlockTertiaryForeground}"/>
</Style>
<Style Selector="^:empty-icon /template/ Ellipse#PART_DefaultIcon"> <Style Selector="^:empty-icon /template/ Ellipse#PART_DefaultIcon">
<Setter Property="IsVisible" Value="True"/> <Setter Property="IsVisible" Value="True"/>
</Style> </Style>